26 lines
551 B
GDScript
26 lines
551 B
GDScript
extends AbstractProjectile
|
|
|
|
|
|
@onready var sprites : Array[Sprite2D] = [
|
|
$Sprite2D_E, $Sprite2D_SE, $Sprite2D_S, $Sprite2D_SW,
|
|
$Sprite2D_W, $Sprite2D_NW, $Sprite2D_N, $Sprite2D_NE,
|
|
]
|
|
|
|
|
|
func _ready() -> void:
|
|
super._ready()
|
|
_update_sprite(_velocity)
|
|
|
|
|
|
func _update_sprite(velocity: Vector2) -> void:
|
|
var sector := 360.0 / sprites.size()
|
|
var angle := rad_to_deg(velocity.angle())
|
|
var bisector := floori(angle + sector * 0.5)
|
|
|
|
var index := floori(posmod(bisector, 360) / sector)
|
|
|
|
for sprite in sprites:
|
|
sprite.hide()
|
|
|
|
sprites[index].show()
|