extends CharacterBody2D @export_range(10, 1000, 10, "or_greater") var speed = 300.0 @export_range(0, 0.2, 0.001, "or_greater") var acceleration = 0.5 @export_group("Airborne") @export_range(0, 1000, 10, "or_greater") var jump_velocity = 400.0 @export_range(0, 10, 0.1, "or_greater") var gravity_modifier = 1 @onready var knight: AnimatedSprite2D = $Knight @onready var red_hood: AnimatedSprite2D = $RedHood var animated_sprites = [] func _ready() -> void: animated_sprites = [ knight, red_hood ] func _physics_process(delta: float) -> void: if not is_on_floor(): velocity += get_gravity() * delta * gravity_modifier # Handle jump. # if Input.is_action_just_pressed("ui_accept") and is_on_floor(): # velocity.y = -jump_velocity var direction := Input.get_axis("move_left", "move_right") if direction > 0: for sprite in animated_sprites: sprite.flip_h = false if direction < 0: for sprite in animated_sprites: sprite.flip_h = true if velocity.x != 0: for sprite in animated_sprites: sprite.play("run") else: for sprite in animated_sprites: sprite.play("idle") if direction: var smoothed_speed = speed * smoothstep(0, 1, acceleration) velocity.x += direction * smoothed_speed velocity.x = clampf(velocity.x, -speed, speed) else: velocity.x = move_toward(velocity.x, 0, speed) move_and_slide()