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」で変更を保存したあと、右上の「▶」(プロジェクトの実行)をクリックします。アイコンが上から下に移動するのが分かります。
