Godot Version
Godot_v4.3-stable
Question
The animation plays once for me, like 1 frame, the first frame when pressing a key and that's it! But what about the other 10 frames?
I also want the animation to loop when holding a key.
I am new to all this, and English is my third language!
Here is the script.
extends CharacterBody2D
const SPEED = 400.0
const JUMP_VELOCITY = -700.0
@onready var sprite_2d: AnimatedSprite2D = $Sprite2D
func _physics_process(delta: float) -> void:
# Animations
if (velocity.x > 1 || velocity.x < -1):
sprite_2d.animation = "walk"
else:
sprite_2d.animation = "default"
if Input.is_action_pressed("crouch"):
sprite_2d.animation = "crouch"
if Input.is_action_pressed("shoot"):
sprite_2d.animation = "shoot"
# Add the gravity.
if not is_on_floor():
velocity += get_gravity() * delta
# Handle jump.
if Input.is_action_just_pressed("ui_accept") and is_on_floor():
velocity.y = JUMP_VELOCITY
# Get the input direction and handle the movement/deceleration.
# As good practice, you should replace UI actions with custom gameplay actions.
var direction := Input.get_axis("ui_left", "ui_right")
if direction:
velocity.x = direction * SPEED
else:
velocity.x = move_toward(velocity.x, 0,10)
move_and_slide()
var isLeft = velocity.x < 0
sprite_2d.flip_h = isLeft