extends Control ## 游戏开始菜单 —— 只有界面,没有逻辑。 ## ## 四个按钮按下去只把对应信号发出去:谁接、接了之后是加载世界、连服务器还是弹设置面板, ## 都不在这个文件里。这样菜单版式可以单独改,主流程也能单独换。 ## ## 接线示例(放在外层,比如以后的主场景或一个菜单流程单例): ## menu.start_pressed.connect(_on_start) ## menu.multiplayer_pressed.connect(_on_multiplayer) ## menu.settings_pressed.connect(_on_settings) ## menu.quit_pressed.connect(get_tree().quit) ## ## 用法:把本场景设成 project.godot 的 application/run/main_scene 即可(这一步也没做)。 signal start_pressed signal multiplayer_pressed signal settings_pressed signal quit_pressed func _ready() -> void: # 从游戏内退回菜单时鼠标可能还是被捕获的,先放出来 —— 不然菜单点不动。 # 这不算逻辑,是菜单能不能用的前提。 Input.mouse_mode = Input.MOUSE_MODE_VISIBLE # 按钮只负责把 pressed 转发成信号,不在这里做任何决定。 %StartButton.pressed.connect(start_pressed.emit) %MultiplayerButton.pressed.connect(multiplayer_pressed.emit) %SettingsButton.pressed.connect(settings_pressed.emit) %QuitButton.pressed.connect(quit_pressed.emit)