2016-04-15 11 views
1

私は、自分自身で簡単な "タワーディフェンス"ゲームを作るために全力を尽くしています(SpriteKitを学び、一般的にゲーム開発に夢中になります)。SpriteKitの別のスプライトにスプライトを取得する

私はゲームのほとんどを動作させていますが、私の悩みは、スクリーンを横切って歩く敵の「撃つ」塔に来るときです。

私はタワー "弾丸"を敵に移動する方法についてはあまりよく分かりません。敵は、それが死亡するエンドポイントに当たるまで、ポイントツーポイントで静的に移動します。

しかし、私はmoveTo(x:、y :)メソッドを使用して移動することができないので、弾丸を動的に移動する必要があります。または、愚かに見えます(弾丸は敵は弾丸の初期化時にあった)。

私が行う必要があることが、パス(つまりCGPath)を実装することがわかりません。率直に言って、CGPathが何であるかをよく理解できないからです。だからここに私は行く方向に固執しています。

スプライトが別のスプライトに移動または「追従」できるようにする単純な関数はありますか? (その場合、それらが衝突すると私は単に弾丸を削除することができます)。

+1

はこれをチェックしてください - [シーカー&ターゲット](http://stackoverflow.com/a/36235426/3402095) – Whirlwind

+0

同じリンクを投稿しようとしています... –

答えて

1

更新サイクルごとに、弾丸から敵の位置までのベクトルを計算します。これを長さ1に正規化します。次に、SKActionを介して弾丸をこのベクトルの最後まで移動します。 SKActionがどれくらいの時間を取るべきかを計算するには、移動する距離と弾丸の速度を計算する必要があります。あなたはSKConstraintを使って、弾丸を自動的に敵に向けて回転させることができます。

このリンクは、ベクトルのものが、病気試みを支援し、後でいくつかのコードを掲載します:

https://www.raywenderlich.com/90520/trigonometry-games-sprite-kit-swift-tutorial-part-1

+0

継続的に減少する距離制約を使用して行うこともできます。 –

+1

次の動作の距離制約を作成することもできます。http:// developerplayground.net/how-to-implement...and-swift-part-2/ – Stefan

関連する問題