タイトル画面のスクリプトを書こう
スクリプトの作成
続いて「Title」ノードにスクリプトをアタッチします。
「Title」ノードを右クリックして「スクリプトをアタッチ」を選択します。「ノードにスクリプトをアタッチする」ダイアログが表示されますので「テンプレート」にチェックを入れて、そのまま「作成」ボタンを押します。
res://scn/title/title.gd
と保存されたはずです。
続いて、「Title」ノード配下の「Button」ノードを選択した状態で、右側のサイドバーの「ノード」ドック>「シグナル」タブを選択します。
「BaseButton」>「pressed()」を右クリックして「接続」を選択します。
「メソッドにシグナルを接続」ダイアログが表示されますので、ノードツリーから「Title」を選択して、「受信側メソッド」が「_on_button_pressed」の状態で「接続」ボタンを押します。


title.gd
をScriptビューで開くと、次のような状態になっています。
extends CanvasLayer func _ready() -> void: pass func _process(delta: float) -> void: pass func _on_button_pressed() -> void: pass
_on_button_pressed
関数を次のように書き換えます。
func _on_button_pressed() -> void: get_tree().change_scene_to_file("res://scn/maze/maze.tscn")
get_tree
関数はSceneTree
オブジェクトを返します。SceneTree
オブジェクトのchange_scene_to_file
関数は、現在のシーンを指定したパスのシーンに変更します。
実行確認
「Title」シーンを実行します。 title.tscn
を開いた状態で、「F6」を押すか、画面右上の「カチンコの中に▶のアイコン」(現在のシーンを実行)ボタンを押します。タイトル画面が表示されます。「START」ボタンを押して、シーンが遷移することを確認してください。


いちおう、この方式でもシーンを遷移してゲームを作ることができます。しかし、シーン遷移時の演出や、個々のシーンを手軽に管理する関数が欲しいところです。
次節からは、そうした演出や、シーン管理用のクラスを作っていきます。