この章では、前章までに作成した設定を利用して、キャラクターを動かせるようにしていきます。いよいよコーディングに入っていきます。
プレイヤー移動のコード内容
まずは以下の内容を入力します。方向キー(ここではWASDキー)を押した時に、プレイヤーを押した方向に移動させます。コーディングの基本は使い方(7)プレイヤーの移動①に少し記述しているので参考にしてください。

func _process(delta):の下に入力していきます。
- var velocity = Vector2.ZERO:
入力方向を一時保管する変数を、二次元座標(ベクトル)として初期化。 - Input.is_action_pressed:
キー入力を判断。カッコ内のmove_rightなどは前章で作成したキー入力の名前と同じものを使用。 - velocity.x、velocity.y:
移動方向を登録。下と右はプラス1で、上と左をマイナス1で。 - if velocity.length() > 0::
キャラクターが移動したかどうかを判断。velocityのxとyでベクトル計算した長さ(length)が0より大きいと移動しているとなる。 - velocity.normalized() * speed:
velocityのベクトルを1にして(正規化という)、速度speed(参照:使い方(7))をかけることで、移動速度を取得。 - position += velocity * delta:
そのノードが示すキャラクター(今回の場合プレイヤーキャラ)の位置を算出。positionはGodotエンジンの組み込みプロパティ。宣言なく使用できるキャラクターの現在の座標を示すベクトル。deltaは前回の描画から今回の描画が開始されるまでに経過した時間。速度と時間をかける事で、移動後の場所が算出される。 - position.clamp(Vector2.ZERO, screen_size):
そのノードが示すキャラクターが画面外に出ないように制限する。括弧内のカンマの左が最小値(画面の原点)、右が画面サイズになる。positonが画面サイズを超えた位置になると、ここで強制的に画面からはみ出ないようにpositionの値が書き直される。
(参考)ひとくちメモ:position.clamp(Vector2.ZERO, screen_size)
作成したシーンの実行
ここまで入力したら、一度実行して動作を確認してみます。実行はツール右上に配置されている、以下の画像の左から5番目(赤い枠)にあります。このボタンはゲーム全体ではなく、作業中のシーン(今回の場合playerシーン)のみを実行します。動作確認など部分的に確認するときに便利です。ちなみにゲーム全体を実行する場合は、一番左のボタン(再生ボタン)を押すとできます。

実行したら、設定した方向キー(wasd)を押してみてください。キャラクターが指定した方向に移動し、画面の端でそれ以上行かなくなると思います。


