2025-02-07 01:56:12 +00:00
|
|
|
|
extends CanvasLayer
|
|
|
|
|
|
2025-02-09 11:43:35 +00:00
|
|
|
|
signal finished
|
|
|
|
|
|
|
|
|
|
@onready var paperback = %"封面"
|
|
|
|
|
@onready var paper = %"页面"
|
|
|
|
|
@onready var p1 = %"p1"
|
2025-02-07 01:56:12 +00:00
|
|
|
|
@onready var signature = %"陆小蝶"
|
|
|
|
|
|
2025-02-09 11:43:35 +00:00
|
|
|
|
var mode := 0:
|
|
|
|
|
set(value):
|
|
|
|
|
mode = value
|
|
|
|
|
match mode:
|
|
|
|
|
0:
|
|
|
|
|
open_paperback()
|
|
|
|
|
1:
|
|
|
|
|
open_p1()
|
|
|
|
|
2:
|
|
|
|
|
open_signature()
|
|
|
|
|
mode = clampi(mode, 0, 3)
|
|
|
|
|
if mode == 0:
|
|
|
|
|
%ButtonPaperback.visible = true
|
|
|
|
|
%ButtonLeft.visible = false
|
|
|
|
|
%ButtonRight.visible = false
|
|
|
|
|
else:
|
|
|
|
|
%ButtonPaperback.visible = false
|
|
|
|
|
%ButtonLeft.visible = true
|
|
|
|
|
%ButtonRight.visible = true
|
|
|
|
|
|
|
|
|
|
|
2025-02-07 01:56:12 +00:00
|
|
|
|
func _ready() -> void:
|
2025-03-20 10:00:53 +00:00
|
|
|
|
# 盖在书架上层,所以 +1
|
|
|
|
|
layer = GlobalConfig.CANVAS_LAYER_LITTLE_GAME + 1
|
2025-02-09 11:43:35 +00:00
|
|
|
|
mode = 0
|
|
|
|
|
%ButtonPaperback.pressed.connect(_on_button_pressed.bind(1))
|
2025-03-14 15:29:11 +00:00
|
|
|
|
# 从右到左翻页,所以右侧-1,左侧+1
|
|
|
|
|
%ButtonLeft.pressed.connect(_on_button_pressed.bind(1))
|
|
|
|
|
%ButtonRight.pressed.connect(_on_button_pressed.bind(-1))
|
2025-02-09 11:43:35 +00:00
|
|
|
|
signature.finished.connect(finished.emit)
|
|
|
|
|
visibility_changed.connect(_on_visibility_changed)
|
2025-03-17 14:12:53 +00:00
|
|
|
|
|
|
|
|
|
# # test 闪红效果
|
|
|
|
|
# await get_tree().create_timer(1.0).timeout
|
|
|
|
|
# var shading_layer = SceneManager.get_shading_layer()
|
|
|
|
|
# shading_layer.flash_vignette(Color(1.0, 0.0, 0.0))
|
2025-02-09 11:43:35 +00:00
|
|
|
|
|
|
|
|
|
func _on_visibility_changed() -> void:
|
|
|
|
|
if visible:
|
|
|
|
|
create_tween().tween_property($Control, "modulate:a", 1.0, 1.0).from(0.0)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var press_time := 0.0
|
|
|
|
|
|
|
|
|
|
func _on_button_pressed(direction: int) -> void:
|
|
|
|
|
# 0: paperback, 1: p1, 2: signature
|
|
|
|
|
# 第二页后不再翻页
|
|
|
|
|
if mode >= 2:
|
|
|
|
|
return
|
|
|
|
|
if Time.get_ticks_msec() - press_time < 1000:
|
|
|
|
|
return
|
|
|
|
|
press_time = Time.get_ticks_msec()
|
|
|
|
|
mode += direction
|
|
|
|
|
|
|
|
|
|
func open_paperback() -> void:
|
|
|
|
|
$SfxPage.play()
|
|
|
|
|
paperback.visible = true
|
|
|
|
|
paper.visible = false
|
|
|
|
|
p1.visible = false
|
2025-02-07 01:56:12 +00:00
|
|
|
|
signature.visible = false
|
2025-02-09 11:43:35 +00:00
|
|
|
|
|
|
|
|
|
func open_p1() -> void:
|
|
|
|
|
$SfxPage.play()
|
|
|
|
|
paperback.visible = false
|
|
|
|
|
paper.visible = true
|
|
|
|
|
p1.visible = true
|
|
|
|
|
signature.visible = false
|
|
|
|
|
|
|
|
|
|
func open_signature() -> void:
|
|
|
|
|
$SfxPage.play()
|
|
|
|
|
paperback.visible = false
|
|
|
|
|
paper.visible = true
|
|
|
|
|
p1.visible = false
|
|
|
|
|
signature.visible = true
|
|
|
|
|
signature.play()
|