【Godot2D】簡単なプレイヤー移動
yotubeで面白そうなチュートリアル見つけたので写経してみました。
@lPandoraBoxさんの「1分シリーズ」というやつです。
文字通り1分でgodot2Dの1機能を説明するシリーズ。
初回の簡単なプレイヤー移動の説明をみてみます。
元動画(英語です)https://www.youtube.com/watch?v=1bytOF4Bmrg
↓こういうのができる
上下左右キー入力でオブジェクトの移動。
●ファイル
●シーン
player.tscn(プレイヤーオブジェクト)
level.tscn(メインシーン)
●操作コマンド
●スクリプト
player.gd
【メモ】
◇「func _physics_process(_delata):」のdeltaのまえについてるアンダーバー
_physics_process(delta)とか_process(delta)は、引数delta(フレーム間の経過時間)を必ず受け取る必要がある。けど、スクリプト内でその引数をつかわないときもある。そんなときに、「この変数は未使用です」というのを示す意味でアンダーバーをつける。つけなきゃいけないわけじゃないけど、たまに未使用の変数があると警告が表示されることもあるのでなるべくつけることが推奨されているらしい。
◇Input.get_vector( )
複数の入力(上下左右キーなど)をベクトルとして取得するメソッド。
今回のコードでは、プレイヤーの移動方向をVector2型で取得している。
Input.get_vector(negative_x, positive_x, negative_y, positive_y, deadzone=0.0)
Vector2(x ,y)
◇Vector2とは
2D空間(xy軸)での移動や速度、方向を表すデータ型。
Godotではオブジェクトの位置、速度、スケール(xy軸の拡大縮小反転)などに使う。
→関連 length() normalized() distance_to() ・・あとで勉強する。
◇velocity
Vector2型の移動速度。これをmove_ando_slide()(CharacterBody2Dのメソッド。壁や障害物とスムーズに衝突(slide)しながら移動)に渡すことでオブジェクトが滑らかに移動する。
◇velocityなどの物理関連の変数にはvar不要
組み込みの変数とか、物理関連の変数にはvarをつけなくていい。
これとか(Node2D)
こういうのとか(CharacterBody2D)