xiandie/scene/index_page.gd

67 lines
1.7 KiB
GDScript

extends Control
# var main_scene := preload("res://scene/main.tscn") as PackedScene
@onready var animation_root = $AnimationRoot as Control
@onready var sfx_click = %SfxClick as Sfx
@onready var newgame_btn = %NewGame as Button
@onready var resume_btn = %Resume as Button
@onready var quit_btn = %Quit as Button
@onready var mask = $Mask as ColorRect
func _ready():
if GlobalConfig.DEBUG:
print("Index Page Ready")
newgame_btn.pressed.connect(_on_newgame_pressed)
resume_btn.pressed.connect(_on_resume_pressed)
quit_btn.pressed.connect(_on_quit_pressed)
_check_resume_btn()
create_tween().tween_property(mask, "modulate:a", 0.0, 1.0)
func _check_resume_btn():
if not ArchiveManager.archives.has(1):
resume_btn.queue_free()
func _on_newgame_pressed():
sfx_click.global_play()
# 覆盖使用 1 号存档
ArchiveManager.create_and_use_new_archive(1)
_enter_main_scene(true)
func _on_resume_pressed():
sfx_click.global_play()
# 继续一号存档
if GlobalConfig.DEBUG:
print("Resume")
if ArchiveManager.archives.has(1):
# 设置 current_selected_archive_id 后,存档会自动加载
GlobalConfigManager.config.current_selected_archive_id = 1
else:
ArchiveManager.create_and_use_new_archive(1)
_enter_main_scene()
func _enter_main_scene(new_game := false):
# new game 时音量渐隐
var duraion = 0.0
if new_game:
duraion = 5.0
$BgmControl.stop(duraion)
SceneManager.enter_main_scene()
func _on_quit_pressed():
# 退出时点击音效将无法播放
#sfx_click.global_play()
SceneManager.quit_game()
func _unhandled_input(event: InputEvent) -> void:
if event.is_action_pressed("escape"):
get_viewport().set_input_as_handled()
SceneManager.show_settings()