77 lines
1.7 KiB
GDScript
77 lines
1.7 KiB
GDScript
extends CanvasLayer
|
|
|
|
signal finished
|
|
|
|
@onready var paperback = %"封面"
|
|
@onready var paper = %"页面"
|
|
@onready var p1 = %"p1"
|
|
@onready var signature = %"陆小蝶"
|
|
|
|
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
|
|
|
|
|
|
func _ready() -> void:
|
|
layer = GlobalConfig.LAYER_LITTLE_GAME
|
|
mode = 0
|
|
%ButtonPaperback.pressed.connect(_on_button_pressed.bind(1))
|
|
%ButtonLeft.pressed.connect(_on_button_pressed.bind(-1))
|
|
%ButtonRight.pressed.connect(_on_button_pressed.bind(1))
|
|
signature.finished.connect(finished.emit)
|
|
visibility_changed.connect(_on_visibility_changed)
|
|
|
|
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
|
|
signature.visible = false
|
|
|
|
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() |