Files
agame/ui/main_menu.gd
T
2026-10-02 10:44:58 +08:00

31 lines
1.3 KiB
GDScript

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)