1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Godot4で3D風2D縦スクロールシューティングゲームを作る 19回目 ボスの攻撃 前方にバズーカ発射

Posted at

Godotのバージョンを4.2.1にしました。
Godot4.2.1でシューティングゲームを作っていきます。

ボスキャラBigFireにバズーカを発射させる

 ボスキャラBigFireが、バズーカを前方に発射するように実装します。

方針 

 17回目で全方位弾を追加した時と同じように、ボスキャラBigFileシーンにバズーカ生成用シーンを子ノードとして追加するだけで、一定周期でバズーカを発射するようにします。 追加するバズーカ生成用シーンはボスキャラBigFireの位置情報のみ使用します。
 以下の画像で、ボスキャラBigFireの前方にある大きな白い球がバズーカのつもりのものです。そのうちGPUParticles3Dを使って格好よくしたいです。
image.png

github

 本記事で実装したものをGitHubで公開しています。

修正および新規追加ファイル

 生成されると、ただまっすぐ進むだけのバズーカ用のシーン(boss_bazooka.tscn)とスクリプトを新規追加します。また、そのバズーカ用シーンを生成するためのシーン(boss_bazooka_periodically.tscn)とスクリプトを新規追加して、ボスBigFileシーン(boss_bigfile.tscn)に子ノードとして追加します。
image.png

バズーカ生成用シーンをボスキャラBigFireシーンに追加する

 ボスキャラBigFileは大きなエンジンを左右に2つ持っています。それぞれのエンジンの前方からバズーカを発射するので、バズーカ生成用シーン(boss_bazooka_periodically.tscn)を2つ子ノードとして、ボスキャラBigfireシーン(boss_bigfile.tscn)に追加します。子ノードの名称には左右のどちらかがわかるように、RとLの字を追加しました。
image.png
 バズーカ生成用シーンのルートノードのMarker3Dは、3Dエディタ上で十字のマークで表示されるため、位置の確認がしやすいという特徴があります。十字の大きさ(線の長さ)はMarker3DのGizmo Extentsプロパティを変更することで調整可能です。初期値の0.25mでは小さくて見にくいので、2.5mに変更しました。
image.png

 ボスキャラBigFireシーンの3Dエディタを開き、表示を上面図に変更して、追加した2つのバズーカ生成用シーンを大きなエンジンの前方にそれぞれ移動します。

image.png
 Marker3Dは上面から見ると十字マークですが、X,Y,Z軸方向に線が伸びています。3Dエディタの視点を少し変更すると確認できます。
image.png

その他の実装について

 あまり新しいことはやっていないので説明は省略します。
 ただ前回までの実装では隕石とアイテムとボスが同時に出現するため、敵の攻撃を避けながらアイテムを取るのが非常に難しかったので、ステージシナリオ「res://scenario/scenario_stage01.tscn」を修正して、アイテムを表示して全て消えてからボスのみが出現するようにしました。

実行結果

image.png

以上です。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?