どこでも検索し、ホーミング ミサイルのコーディングに関するリソースをいくつか見つけましたが、アクション スクリプトとコーディング全般に不慣れなため、さまざまなビットが何をするのか、ゲームに組み込むどころか、本当に理解できません。
学校のプロジェクトでスクロール シューティング ゲームを作成しています。次のように機能する特別な「第 3 の」武器があります。
- 敵が範囲内にいるとき、武器は自動発砲します
- 武器は最も近い敵をターゲットにして、その方向に進みます
- ミサイルでもあるので、その回転運動も必要です
- ターゲットが破壊されると、ミサイルは自爆します
最も近いターゲットを見つけるためのコードは既にあります。
for (var i in enemies)
{
var min = Infinity; // Set to infinity so the if statement will work
var tempDist = getDistance(enemies[i]); // tempDist stores the distance
if (tempDist < min && tempDist < 300)
{
min = tempDist;
closestEnemy = enemies[i];
}
}
(getDistance() は、私のコードで 2 つの MC 間の距離を見つけるための関数です)
私がやりたいのは、最も近くにターゲットがない場合は、closestEnemy に識別子または「未定義」を格納させることです。ホーミング ミサイル MC には、_root.playership.closestEnemy を通じて最も近い敵の位置を常に更新するクラスがあります。「未定義」の場合、爆発するはずです。
プレイヤーの宇宙船には、スポーンされたすべての敵のすべてのアイデンティティを含む「敵」と呼ばれる配列が含まれています。リロードと発砲率のシステムはうまくいっていますが、問題は追跡だけです。
どんな助けでも大歓迎です、ありがとう!