🚀

ホーミング弾はどのように作るのか。【ゲーム制作】

2025/02/17に公開

今回は、ホーミング弾の作り方を解説します。

通常の作り方とは少し違うので、ご理解ください。

では、gamemaker stadio2 におけるホーミングのコードです。

cool_time--;

if(cool_time < 0){

move_towards_point(player.x + hspeed *50,player.y + vspeed * 50,10);
cool_time = 7;

}

このコードで実装します。

move_towards_pointは目標地点に、任意の速度で移動する関数です。
速度として、それを設定するため、マイフレーム移動処理を書く必要がありません。
player.x + hspeed *50 は、プレイヤーに対して飛んでいく + 自分の加速度に補正係数をかけることで、慣性を持った移動を実現できます。

自身の速度に新しい速度を足し合わせるのではなく、
そもそもの目標地点を改変してしまうというのが、今回の実装の面白いポイントです。

この実装の良い所は、速度が一定であるため、荒ぶりが少ない点にあります。

プレイヤーを追従させたいけど、ある程度ポンコツ感を出したい場合は、hspeed *50を大きめに設定するか、判定の回数を減らして、大きく迂回するようなものを作成するかの二択があります。

以下、敵のドローンとして実装した例です

https://x.com/curicuri4343/status/1891036345667072338

高級ミサイルは、ランダムな確率で、移動速度を反転させることで不規則な感じを演出しています。

Discussion