動画を見たり、作ってみたりしているわけだが、マルチステージのマリオのようなゲームはどのように作るのだろうと構成を考えてみる
■ゲームコントロール(メイン)
■ゲームイントロ(スタート画面)
■ゲームオーバー
■オプション(設定)
■ステージ1
■ステージ2
・
・
・
こんな感じだろうか。
シューティングやプラットフォーマーで制作したのはステージに該当する部分なので、他を入れてサンプルを作ってみたいと思う。
適当なシーンを作ってみる




シーンチェンジに関して
ボタンクリック時にchange_scene_to_fileで変更しようとしたのだが、動画検索をすると違う方法の方が良いらしい
func _on_stage_1_button_pressed() -> void:
get_tree().change_scene_to_file("res://scenes/stage_1.tscn")
extends Node
var current_scene = null
func _ready() -> void:
var root = get_tree().root
current_scene = root.get_child(root.get_child_count() - 1)
func switch_scene(res_path):
call_deferred("_deferred_switch_scene", res_path)
func _deferred_switch_scene(res_path):
current_scene.free()
var s = load(res_path)
current_scene = s.instantiate()
get_tree().root.add_child(current_scene)
get_tree().current_scene = current_scene
プロジェクトのオートロードに「scene_switcher.gd」を登録して上のスクリプトを入れる。
個々のボタンからは以下
func _on_start_button_pressed() -> void:
#get_tree().change_scene_to_file("res://scenes/game.tscn")
SceneSwitcher.switch_scene("res://scenes/game.tscn")
Github:https://github.com/morino5555/GodotExample/tree/main/multiplestage