2023-02-25 01:04:08 +01:00
|
|
|
extends Node2D
|
|
|
|
|
|
|
|
onready var me = $AnimatedSprite
|
|
|
|
|
|
|
|
onready var timer
|
2023-02-25 14:02:57 +01:00
|
|
|
var limit_random
|
|
|
|
var rng = RandomNumberGenerator.new()
|
|
|
|
onready var button = $"../Button/"
|
2023-02-25 01:04:08 +01:00
|
|
|
|
2023-02-25 17:29:51 +01:00
|
|
|
# True if animation should change
|
|
|
|
var next = false
|
|
|
|
|
2023-02-25 01:04:08 +01:00
|
|
|
|
|
|
|
# Called when the node enters the scene tree for the first time.
|
|
|
|
func _ready():
|
2023-02-25 15:46:51 +01:00
|
|
|
timer = 0
|
|
|
|
rng.randomize()
|
|
|
|
limit_random = rng.randi_range(2, 10)
|
2023-02-25 17:29:51 +01:00
|
|
|
me.play("orange")
|
2023-02-25 01:04:08 +01:00
|
|
|
|
|
|
|
|
|
|
|
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
|
|
|
func _process(delta):
|
2023-02-25 15:46:51 +01:00
|
|
|
timer += delta
|
2023-02-25 17:29:51 +01:00
|
|
|
|
|
|
|
var animations = ["orange", "red"]
|
|
|
|
|
|
|
|
var max_frame = me.frames.get_frame_count(me.animation) - 1
|
|
|
|
var current_anim_idx = animations.find(me.animation)
|
|
|
|
if current_anim_idx >= animations.size() - 1:
|
|
|
|
# Last animation reached
|
2023-02-25 17:32:20 +01:00
|
|
|
check_next_animframe(max_frame, animations[0])
|
2023-02-25 17:29:51 +01:00
|
|
|
else:
|
2023-02-25 17:32:20 +01:00
|
|
|
check_next_animframe(max_frame, animations[current_anim_idx + 1])
|
2023-02-25 17:29:51 +01:00
|
|
|
|
|
|
|
|
|
|
|
# Jump to next animation at the end of the current one
|
2023-02-25 17:32:20 +01:00
|
|
|
func check_next_animframe(max_frame, next_animation):
|
2023-02-25 17:29:51 +01:00
|
|
|
if me.frame == 0 and next:
|
|
|
|
me.play(next_animation)
|
|
|
|
next = false
|
|
|
|
if max_frame == me.frame:
|
|
|
|
# Last frame of animation reached
|
|
|
|
next = true
|