feat: HUD 增加时间流速控制,新增 Settings 持久化
- 顶栏改为暂停/1x/5x/20x 按钮组,当前档位高亮 - TimeSystem 支持暂停与档位切换 - 新增 Settings 单例,存档默认流速并开机应用 - GameState 补充年月日,支持 12x30 历法推进
This commit is contained in:
@@ -2,11 +2,17 @@ extends Node
|
||||
|
||||
signal day_passed(year, month, day)
|
||||
|
||||
const SPEEDS := [1.0, 5.0, 20.0]
|
||||
var speed_index := 0
|
||||
|
||||
const DAY_LENGTH := 5.0
|
||||
var speed := 1.0
|
||||
var paused := false
|
||||
var _elapsed := 0.0
|
||||
|
||||
func _process(delta: float) -> void:
|
||||
if paused:
|
||||
return
|
||||
_elapsed += delta * speed
|
||||
if _elapsed >= DAY_LENGTH:
|
||||
_elapsed -= DAY_LENGTH
|
||||
@@ -16,3 +22,19 @@ func _advance() -> void:
|
||||
# GameState.year, GameState.month, GameState.day 推进
|
||||
GameState.day = GameState.day + 1;
|
||||
day_passed.emit()
|
||||
|
||||
func cycle_speed() -> float:
|
||||
speed_index = (speed_index + 1) % SPEEDS.size()
|
||||
speed = SPEEDS[speed_index]
|
||||
return speed
|
||||
|
||||
func set_speed_index(index: int) -> void:
|
||||
speed_index = clampi(index, 0, SPEEDS.size() - 1)
|
||||
speed = SPEEDS[speed_index]
|
||||
|
||||
func toggle_pause() -> bool:
|
||||
paused = not paused
|
||||
return paused
|
||||
|
||||
func get_speed_label() -> String:
|
||||
return "x%d" % int(speed)
|
||||
|
||||
Reference in New Issue
Block a user