ld55/src3/Actor/actor.gd

46 lines
833 B
GDScript
Raw Permalink Normal View History

2024-04-14 15:43:40 +00:00
extends CharacterBody2D
class_name Actor
@export var auto_die = false
@export var player = false
var state = null
const SPEED = 400
var vel: Vector2 = Vector2(0, 0)
func _ready():
if self.auto_die:
self.set_state(ActorExplode.new(self))
func _physics_process(_delta):
pass
func set_state(new_state):
if self.state != null:
remove_child(self.state)
self.state = new_state
if self.state:
add_child(self.state)
func sprite() -> AnimatedSprite2D:
return $AnimatedSprite2D
func explode():
sprite().visible = false
2024-04-14 23:10:28 +00:00
$SFXExplode.play()
2024-04-14 15:43:40 +00:00
$CPUParticles2D.restart()
func anim_walk():
sprite().animation = 'walk'
if not sprite().is_playing():
sprite().play()
func anim_idle():
sprite().animation = 'idle'
if not sprite().is_playing():
sprite().play()
func _on_cpu_particles_2d_finished():
self.queue_free()