Post
Godot エンジンで右に歩いてスライムに出会うまで
概要
Godot Engine を使用して、右キーを押すとキャラが右に歩く / スライムにぶつかると戦闘画面に遷移する という簡単なゲーム(ゲームと言うか、デモ?)を作成しました。
キー入力が必要なので、スマホ対応は NG です。
https://mi-ki-ri.github.io/Walking_and_Meet_Slime/ こちらのリンクからプレイできるので、よかったら試してみてください。
作業内容
右キーを押して歩くフィールド画面、そしてスライムにぶつかると出てくる戦闘画面の 2 種類を使い分けるのが主眼です。
メインのスクリプトファイル( gameManager.gd
)のループは一つ( _process(delta)
関数 )で、フィールド画面と戦闘画面は phase
という変数で切り替えています。
イメージ的には、
...
func _ready():
var phase = "field"
func _process(delta):
if phase == "field":
# フィールド画面の処理
fieldPhase.update(delta)
elif phase == "battle":
# 戦闘画面の処理
battlePhase.update(delta)
else:
...
こんな感じです。そして各フェイズと phase
変数はグローバルで持ちたかったので、 Global.gd
というスクリプトを用意し、Godot のプロジェクト設定 -> グローバル から読み込みました。
各フェイズ自体は gameManager.gd
の中で定義しています。おかげでファイルが長くなってしまいました。
...
class fieldPhase:
func update(delta):
# 更新処理、キー入力処理
draw()
func draw():
# 描画処理
for player in players:
player.object.position.x = player.elapsed_road * 32 + player.position_x + player.position_x_offset
pass
...
class battlePhase:
func update(delta):
# 更新処理、バトルのロジック
draw()
func draw():
# 描画処理
こんな感じです。
そして素材! たったこれだけの素材を用意するのが結構大変でした。
これからはどんどん使いまわして、制作スピードを上げていきたいです。
まとめ
今はまだデモをたくさん作る段階だと思っているので、これからもどんどん使いまわしていきたいです。
今回フィールドがメインでバトルは省略されているので、次回は逆にバトルをメインにしたい。
ゼラチナ(スライムの名前)はこれからも何度も出てくる(そして倒される)予定です。
もう一度リンク
https://mi-ki-ri.github.io/Walking_and_Meet_Slime/ こちらのリンクからプレイできます。
#制作 #godot #gamedev