feat: player movement and animations
This commit is contained in:
@ -2,26 +2,54 @@ 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:
|
||||
# Add the gravity.
|
||||
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
|
||||
# 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")
|
||||
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:
|
||||
velocity.x = direction * speed
|
||||
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)
|
||||
|
||||
|
Reference in New Issue
Block a user