コイン集め:歩く
CoddyのGodotジャーニー「シグナルと衝突」セクションの一部。レッスン 23/27。
これからの5つのレッスンで、Coin Collectorを作ります。部屋の中を歩き回ってすべてのコインを取り、最後の1枚がなくなったら勝ちです。
ゲームには3つのスクリプトがあります。
player.gd:あなたが動かすロボットです。coin.gd:各コインがこのスクリプトを使います。main.gd:Mainにある、ゲームのルールです。
まずは歩く動作です。プレイヤーはCharacterBody2Dです。壁と2つの灰色のブロックはStaticBody2Dです。前のセクションで、次の移動処理を書きました。
func _physics_process(delta):
velocity = Input.get_vector("move_left", "move_right", "move_up", "move_down") * SPEED
move_and_slide()move_and_slide()は、velocityに従ってボディを動かし、壁のところで止めます。自分でpositionを変更すると、壁を通り抜けてしまいます。
チャレンジ
簡単Coin Collectorを始めよう:プレイヤーを歩かせます。
player.gdで、velocityにInput.get_vector("move_left", "move_right", "move_up", "move_down")とSPEEDを掛けた値を設定します。- 次に、
move_and_slide()を呼び出します。coin.gdとmain.gdはそのままにします。
「プレイ」を押します。矢印キーまたはWASDでプレイヤーが歩き、壁にぶつかると止まります。次に「確認」を押します。
自分で試してみよう
extends CharacterBody2D
const SPEED = 200.0
func _physics_process(delta):
pass
シグナルと衝突のすべてのレッスン
自分で練習してみよう: Godotプレイグラウンド