31 lines
1.3 KiB
GDScript
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)
|