これはスワイプ(私はあなたがパンを使用していると思う)ジェスチャーを使用したいものではありません。あなたがしたいのは、シーン上でtouchesBegan
、touchesMoved
、およびtouchesEnded
コールを上書きし、これらの3つの方法に従って動きを計画することです。
おそらく、これらの方法でSKAction.move(to:duration:)
を使用し、一定の速度を維持するための数学を計算したいと思うでしょう。
E.G.
func movePlayer(to position:CGPoint)
{
let distance = player.position.distance(to:position)
let move = SKAction.move(to:position, duration: distance/100) // I want my player to move 100 points per second
//using a key will cancel the last move action
player.runAction(move,withKey:"playerMoving")
}
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?)
{
let touch = touches.first
let position = touch.location(in node:self)
movePlayer(to:position)
}
override func touchesMoved(touches: Set<UITouch>, withEvent event: UIEvent?)
{
let touch = touches.first
let position = touch.location(in node:self)
movePlayer(to:position)
}
override func touchesEnded(touches: Set<UITouch>, withEvent event: UIEvent?) {
let touch = touches.first
let position = touch.location(in node:self)
movePlayer(to:position)
}
素晴らしいですが、これは大変感謝しています! @KnightOfDragon – Alex
問題はありませんが、他の人に知らせるために受け入れたことを確認してください – Knight0fDragon