35 lines
1.1 KiB
GDScript
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()
|