extends Node class_name PlayerNormal func run(actor, delta): var velocity = Vector2() # The player's movement vector. var keys = actor.key_map.keys() for i in keys: if Input.is_key_pressed(i): actor.key_map[i].trigger(actor) if Input.is_action_pressed("ui_right"): velocity.x += 1 if Input.is_action_pressed("ui_left"): velocity.x -= 1 if Input.is_action_pressed("ui_down"): velocity.y += 1 if Input.is_action_pressed("ui_up"): velocity.y -= 1 if velocity.length() > 0: velocity = velocity.normalized() * actor.speed actor.getAnimatedSprite().play() actor.position += velocity * delta actor.position.x = clamp(actor.position.x, 0, actor.get_viewport_rect().size.x) actor.position.y = clamp(actor.position.y, 0, actor.get_viewport_rect().size.y) if velocity.x > 0 or velocity.y != 0: actor.getAnimatedSprite().animation = "forward" elif velocity.x < 0: actor.getAnimatedSprite().animation = "backward" else: actor.getAnimatedSprite().animation = "idle" actor.last_process_velocity = velocity func spriteFinished(actor): actor.show() pass