![]() |
Attention | Topic was automatically imported from the old Question2Answer platform. |
![]() |
Asked By | HayJay |
I’m trying to Play animations when Moving using a Animated sprite but I’m unsure how?
Here’s the code if anyone would like it:
extends AnimatedSprite
var speed = 128
var tile_size = 32
var last_position = Vector2()
var target_position = Vector2()
var movedir = Vector2()
onready var ray = $RayCast2D
func _ready():
position = position.snapped(Vector2(tile_size, tile_size))
last_position = position
target_position = position
func _process(delta):
# MOVEMENT
if ray.is_colliding():
position = last_position
target_position = last_position
else:
position += speed * movedir * delta
if position.distance_to(last_position) >= tile_size - speed * delta:
position = target_position
# IDLE
if position == target_position:
get_movedir()
last_position = position
target_position += movedir * tile_size
func get_movedir():
var Left = Input.is_action_pressed("ui_left")
var Right = Input.is_action_pressed("ui_right")
var Up = Input.is_action_pressed("ui_up")
var Down = Input.is_action_pressed("ui_down")
movedir.x = -int(Left) + int(Right)
movedir.y = -int(Up) + int(Down)
if movedir.x != 0 && movedir.y != 0:
movedir = Vector2.ZERO # Vector2.Zero = Vector2(0, 0)
if movedir != Vector2.ZERO:
ray.cast_to = movedir * tile_size / 2