2020/11/14(土) [n年前の日記]
#2 [godot] Godot Engineでプレイヤーをカーソルキーで動かす
Godot Engine 3.2.3 x64 を使って3D表示の簡単なシューティングゲームっぽいものを作る。
今回はプレイヤーのスクリプトを書いて、プレイヤーキャラをカーソルキーで動かしてみる。
今回はプレイヤーのスクリプトを書いて、プレイヤーキャラをカーソルキーで動かしてみる。
◎ スクリプトファイルを編集。 :
Playerシーンを開いて、Playerノード名の横のスクリプトアイコンをクリック。これでスクリプトエディタが開かれて編集できるようになる。

以下の内容を記述。
_Player.gd
簡単に説明すると…。
Mainシーンを開いて実行してみる。
カーソルキーを押して前後左右に動かせるようになった。ただ、画面の端を超えてしまってもそのまま動き続けてしまう…。そのあたりの補正処理は後で入れることにする。
次回は背景に相当するシーンを作ってみたい。

以下の内容を記述。
_Player.gd
extends KinematicBody
const SPEED = 32
var velocity = Vector3()
func _ready():
pass # Replace with function body.
#func _process(delta):
# pass
func _physics_process(delta):
# move
velocity = Vector3()
if Input.is_action_pressed("ui_right"):
velocity.x = 1
elif Input.is_action_pressed("ui_left"):
velocity.x = -1
if Input.is_action_pressed("ui_down"):
velocity.z = 1
elif Input.is_action_pressed("ui_up"):
velocity.z = -1
# Do not multiply by delta when using move_and_slide()
velocity = velocity.normalized() * SPEED
move_and_slide(velocity)
簡単に説明すると…。
- KinematicBodyノードを使ってる場合は、_process(delta) ではなく _physics_process(delta) の中に移動処理等を書く。
- Input.is_action_pressed("ui_right") で、カーソルキーの右キーが押されているか判別できる。
- move_and_slide(velocity) で velocity の方向に移動する。delta は掛けなくてよい。
Mainシーンを開いて実行してみる。
カーソルキーを押して前後左右に動かせるようになった。ただ、画面の端を超えてしまってもそのまま動き続けてしまう…。そのあたりの補正処理は後で入れることにする。
次回は背景に相当するシーンを作ってみたい。
[ ツッコむ ]
以上です。