Files
demo-godot-2502/Airone.gd
2025-02-16 14:28:47 +01:00

35 lines
1.1 KiB
GDScript

extends Node2D
@onready var anim: AnimationPlayer = $anim
@onready var skeleton: Skeleton2D = $skeleton
func _ready() -> void:
var t := create_tween()
t.tween_property(skeleton, "position", Vector2(skeleton.position.x - 30.0, skeleton.position.y), 3.0) \
.set_ease(Tween.EASE_IN_OUT).set_trans(Tween.TRANS_QUAD)
t.chain().tween_property(skeleton, "position", Vector2(skeleton.position.x + 30.0, skeleton.position.y), 3.0) \
.set_ease(Tween.EASE_IN_OUT).set_trans(Tween.TRANS_QUAD)
t.set_loops()
anim.play("idle")
func _input(event: InputEvent) -> void:
if event.is_action("talk"):
_talk()
func _talk() -> void:
var p := randf()
if p < .2:
anim.play("talk3")
elif p < .5:
anim.play("talk1")
else:
anim.play("talk2")
func _on_animation_finished(_anim_name: StringName) -> void:
anim.play("idle")
func _on_area_input_event(_viewport: Node, event: InputEvent, _shape_idx: int) -> void:
if event is InputEventMouseButton and event.pressed and anim.current_animation == "idle":
_talk()