7.スクリプトを書いてみよう3
もう少しだけスクリプトを追加します。スクリプトの追加は、これが最後です。
ルートノードの「Sprite2D」の「インスペクター」ドックを操作して、「Offset」の「x」と「y」を0に戻します。値の横にリロードの回転アイコンがある場合は、このアイコンを押すと初期値に戻ります。

次に、sprite_2d.gd
を次のように書き換えます。
extends Sprite2D const TEST = preload("res://test.gd") func _init(): print("Hello, world!") var test = TEST.new() test.my_func() func _ready() -> void: position.x = 576.0 position.y = 324.0 func _process(delta): position.y += 10 if position.y > get_viewport().size.y: position.y = 0

_ready
関数は、ノードがツリーに追加されて、準備完了になったタイミングで実行されます。多くの場合、ノードにアタッチしたスクリプトの初期化はここでおこないます。
「インスペクター」ドックにある値は、それぞれのノード(クラス)のプロパティ(メンバー変数)です。そのためposition
のように直接利用できます。長く書くならself.position
です。
_ready
関数では、position.x
とposition.y
の値を初期化します。
続く_process
関数は、毎フレーム呼び出される関数です。ここでは画像を下に移動させ、端まで来たら上から出現させます。
ここではまず、position.y
に10
を足します。
if
文はPythonと同じようにif 条件式:
と書いてインデントします。ビューポートのサイズはget_viewport().size
で得られます。高さはsize.y
です。Y位置が、ビューポートの高さを超えたら、Y位置を0
にします。
「Ctrl+S」で変更を保存したあと、右上の「▶」(プロジェクトの実行)をクリックします。アイコンが上から下に移動するのが分かります。
