diff --git a/player/player.gd b/player/player.gd index fbfdf87..05c93f7 100644 --- a/player/player.gd +++ b/player/player.gd @@ -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) diff --git a/player/player.tscn b/player/player.tscn index eb9ca49..b75b5f1 100644 --- a/player/player.tscn +++ b/player/player.tscn @@ -477,20 +477,23 @@ height = 26.0 [node name="Player" type="CharacterBody2D"] collision_layer = 3 script = ExtResource("1_yw30f") +speed = 200.0 +acceleration = 0.177 [node name="Knight" type="AnimatedSprite2D" parent="."] -visible = false position = Vector2(1, -28) sprite_frames = SubResource("SpriteFrames_7l6ig") animation = &"idle" autoplay = "idle" [node name="RedHood" type="AnimatedSprite2D" parent="."] +visible = false position = Vector2(11, -19) sprite_frames = SubResource("SpriteFrames_mmwog") animation = &"idle" autoplay = "idle" [node name="CollisionShape2D" type="CollisionShape2D" parent="."] +visible = false position = Vector2(0, -13) shape = SubResource("CapsuleShape2D_g1dw6") diff --git a/project.godot b/project.godot index dfbe978..9116713 100644 --- a/project.godot +++ b/project.godot @@ -25,6 +25,33 @@ window/stretch/mode="viewport" project/assembly_name="ExampleProject" +[input] + +move_right={ +"deadzone": 0.2, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194321,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":68,"key_label":0,"unicode":100,"location":0,"echo":false,"script":null) +] +} +move_left={ +"deadzone": 0.2, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":65,"key_label":0,"unicode":97,"location":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194319,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) +] +} +interact={ +"deadzone": 0.2, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":69,"key_label":0,"unicode":101,"location":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":70,"key_label":0,"unicode":102,"location":0,"echo":false,"script":null) +] +} +hit={ +"deadzone": 0.2, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":32,"key_label":0,"unicode":32,"location":0,"echo":false,"script":null) +, Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":1,"position":Vector2(196, 11),"global_position":Vector2(205, 50),"factor":1.0,"button_index":1,"canceled":false,"pressed":true,"double_click":false,"script":null) +] +} + [rendering] textures/canvas_textures/default_texture_filter=0