2016-04-18 10 views
1

スタックオーバーフローで答えがthisであることがわかりましたが、私はそれを変更できません。その質問に対する答えは、ミサイルをあなたの指の方向に動かす方法を示しています。しかし、私は別のノード(私の場合は船)の方向に移動したいそれは私の指に従う代わりに、それは船に従うことを意味します。どのようにこれを達成することができますか?それは非常に簡単で非常にノードを別のノードの方向に移動する方法

答えて

1

ありがとう:

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 
} 
+0

偉大な答えをありがとう。素晴らしいですが、それは一つの問題です。 2つのノードが衝突すると、ミサイルのz位置がどこにでもあります。つまり、狂ったように回転し始めます。これをどうすれば解決できますか? –

+0

私はちょうど他のstamensを作成しようとしましたが、zPositionが触れても変わっても動作しないと言っています。 –

+0

@HarrisonRよくプレイヤーとミサイルの接触があなたに依存するとどうなりますか?接触検知を実施し、適切な措置を講じる(ノードを取り除く、爆発させるなど)。これはシーク・ロジックを実装する方法の一例にすぎません。それを超えるものは、リンクされた質問の範囲外であり、この質問の範囲外です。 – Whirlwind

関連する問題