【2の途中。あとでやる。】How to make a Snake Game in Godot 4
Godot 4 向けのチュートリアルをやっても、コードが機能しないことがある。
なので、たぶん同じ Ver 4 でもコードの書き方かインスペクターが変わっているのだろうと予測。
解決策として、YouTube で1週間以内の動画を探してチャレンジしてみる。
かなり良い講座。アセットがなく、すべてコーディングで実現している。
ゆえにコーディングだらけなのだけど、GDScript の理解が足りていないので、GDScript の学習を先にしよう。
https://www.youtube.com/watch?v=hmuxTP3eQ7M
【1】How to make a Snake Game in Godot 4: Drawing the Grid
履歴(History)パネルの存在にはじめて気づく
フォントとアイコンをファイルパネルに入れる操作があるけど、アセット配布は無い
フォントは【Grixel Acme 7 Wide】というフリーフォントっぽいのでダウンロードした。
ストレッチのモードを Viewport に設定した
:=は変数の型を推論して、型が変更されないことを保証する。変数の宣言と初期化のときにしか使えない
class_name は、そのスクリプトはエンジン全体で利用可能な型となり、再利用と整理に向いている
-> は関数の戻り値の型を示すために使われる
-> void は戻り値がないことを表す型。関数が特定の値を返さない場合、その戻り値の型は void となる。通常は省略可能なので、書かなくて良い。
draw_line関数は_draw()コールバック内で使用する必要があります。
code:draw_line
draw_line(from: Vector2, to: Vector2, color: Color, width: float = 1.0, antialiased: bool = false)
func _draw():
draw_line(Vector2(10, 10), Vector2(100, 100), Color.red)
プログラムから引いた draw_line は、メインビューに表示されないっぽい。
curr が指定されているが、current の略としてよく使われる。
https://www.youtube.com/watch?v=h5JVlsPkX8U&t=1s
【2】How to make a Snake Game in Godot 4: Moving the Snake
17:52 まで学習した。途中から、ほとんど分かっていない。
【動いているけど、分からない。まだちょっと早いので、また今度やりましょう。】
tween_moveはオブジェクトをアニメーション化するための関数。オブジェクトをスムーズに移動させることができる
fposmod は割った余りの数を正数にする。これにより、グリッドの外側にはみ出さないようになる。
【3】は、まだアップロードされていない。