1
スタックオーバーフローで答えがthisであることがわかりましたが、私はそれを変更できません。その質問に対する答えは、ミサイルをあなたの指の方向に動かす方法を示しています。しかし、私は別のノード(私の場合は船)の方向に移動したいそれは私の指に従う代わりに、それは船に従うことを意味します。どのようにこれを達成することができますか?それは非常に簡単で非常にノードを別のノードの方向に移動する方法
スタックオーバーフローで答えがthisであることがわかりましたが、私はそれを変更できません。その質問に対する答えは、ミサイルをあなたの指の方向に動かす方法を示しています。しかし、私は別のノード(私の場合は船)の方向に移動したいそれは私の指に従う代わりに、それは船に従うことを意味します。どのようにこれを達成することができますか?それは非常に簡単で非常にノードを別のノードの方向に移動する方法
ありがとう:
1)の代わりにtouchesMoved
使用update
方法。
2)タッチ位置の代わりに、プレイヤーの位置を使用します。
override func update(currentTime: NSTimeInterval) {
let location = player.position
//Aim
let dx = location.x - missile.position.x
let dy = location.y - missile.position.y
let angle = atan2(dy, dx)
missile.zRotation = angle
//Seek
let vx = cos(angle) * missileSpeed
let vy = sin(angle) * missileSpeed
missile.position.x += vx
missile.position.y += vy
}
偉大な答えをありがとう。素晴らしいですが、それは一つの問題です。 2つのノードが衝突すると、ミサイルのz位置がどこにでもあります。つまり、狂ったように回転し始めます。これをどうすれば解決できますか? –
私はちょうど他のstamensを作成しようとしましたが、zPositionが触れても変わっても動作しないと言っています。 –
@HarrisonRよくプレイヤーとミサイルの接触があなたに依存するとどうなりますか?接触検知を実施し、適切な措置を講じる(ノードを取り除く、爆発させるなど)。これはシーク・ロジックを実装する方法の一例にすぎません。それを超えるものは、リンクされた質問の範囲外であり、この質問の範囲外です。 – Whirlwind