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シーンを開いて実行してみる。
カーソルキーを押して前後左右に動かせるようになった。ただ、画面の端を超えてしまってもそのまま動き続けてしまう…。そのあたりの補正処理は後で入れることにする。
次回は背景に相当するシーンを作ってみたい。
[ ツッコむ ]
以上です。