xiandie/scene/ground/script/c02/裂缝议论文字.gd
2025-06-18 21:02:36 +08:00

40 lines
1004 B
GDScript

@tool
extends Node2D
@export var key := "":
set(val):
key = val
if is_node_ready():
_update_text()
@export var label_rotation := 0.0:
set(val):
label_rotation = val
if is_node_ready():
label.rotation = val
@onready var label := $RichTextLabel as RichTextLabel
@onready var area2d := $Area2D as Area2D
func _ready() -> void:
label.rotation = label_rotation
_update_text()
if not Engine.is_editor_hint():
label.visible = false
area2d.body_entered.connect(_on_area_entered)
func _on_area_entered(_body):
if not _body is MainPlayer:
return
label.visible = true
await get_tree().create_timer(randf()).timeout
var tween = create_tween()
tween.tween_property(label, "position:y", 3.0, 0.6).set_trans(Tween.TRANS_BOUNCE)
tween.tween_property(label, "position:y", 0.0, 0.6).set_trans(Tween.TRANS_BOUNCE)
tween.set_loops(10)
create_tween().tween_property(label, "modulate:a", 0.0, 8.0)
func _update_text():
label.text = "[pulse ease=2.0 freq=2 color=#000000cf] " + tr(key)