ダンジョンを歩く
CoddyのGodotジャーニー「プロジェクト」セクションの一部。レッスン 29/36。
最後のプロジェクトは、上から見たダンジョンクローラーです。主人公は鍵を取り、ドアを開け、警備兵を通り抜けて階段にたどり着きます。
スクリプトはhero.gd、enemy.gd、main.gdです。壁はWallsという名前のStaticBody2Dで、すでにシーンにあります。
主人公は4方向に歩きます。Input.get_vectorは4つすべてのキーを読み取り、長さ1の方向ベクトルを返すため、斜め移動が速くなることはありません。move_and_slide()はvelocityに応じてボディを動かし、壁に沿って滑らせます。
velocity = Input.get_vector("move_left", "move_right", "move_up", "move_down") * SPEED
move_and_slide()move_and_slideはそれ自体でdeltaを使用するため、これを掛ける必要はありません。
チャレンジ
簡単ヒーローをダンジョンの中で移動させましょう。
hero.gdで、const SPEED = 160を追加します。- 物理フレームごとに、4つの移動アクションの
Input.get_vectorの戻り値にSPEEDを掛けた値をvelocityに設定し、その後move_and_slide()を呼び出します。
「プレイ」を押して歩かせます。壁に当たるとヒーローは止まります。その後、「確認」を押します。
自分で試してみよう
extends CharacterBody2D
func _physics_process(delta):
pass
プロジェクトのすべてのレッスン
自分で練習してみよう: Godotプレイグラウンド