diff --git a/.DS_Store b/.DS_Store index f6bd939..0466bd5 100644 Binary files a/.DS_Store and b/.DS_Store differ diff --git a/gmtk_2024/levels/TestingField.tscn b/gmtk_2024/levels/TestingField.tscn index 29c5ceb..9c3b61b 100644 --- a/gmtk_2024/levels/TestingField.tscn +++ b/gmtk_2024/levels/TestingField.tscn @@ -2,9 +2,9 @@ [ext_resource type="PackedScene" uid="uid://ba6afuig8bqrg" path="res://levels/LevelBase.tscn" id="1_ad6qp"] [ext_resource type="Shader" path="res://shaders/scrolling.gdshader" id="2_60gse"] -[ext_resource type="Texture2D" uid="uid://c4r7ka8jkgcau" path="res://textures/Level 01.png" id="2_gi0pl"] -[ext_resource type="Texture2D" uid="uid://b13adrmbk7mt0" path="res://textures/level01-spritesheet.png" id="3_3ou1v"] -[ext_resource type="PackedScene" uid="uid://vtwswrkfkgas" path="res://objects/EnemyMover.tscn" id="4_3fnma"] +[ext_resource type="Texture2D" uid="uid://b2vqx11kx16u" path="res://textures/Level 01.png" id="2_gi0pl"] +[ext_resource type="Texture2D" uid="uid://51ffxb41mud6" path="res://textures/level01-spritesheet.png" id="3_3ou1v"] +[ext_resource type="PackedScene" path="res://objects/EnemyMover.tscn" id="4_3fnma"] [sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_e817v"] texture = ExtResource("3_3ou1v") diff --git a/gmtk_2024/scripts/player_movement.gd b/gmtk_2024/scripts/player_movement.gd index 54d84c2..fc44d85 100644 --- a/gmtk_2024/scripts/player_movement.gd +++ b/gmtk_2024/scripts/player_movement.gd @@ -1,20 +1,20 @@ extends CharacterBody2D -@export var speed = 340; -@export var gravity = 50; -@export var jump_count = 2; +@export var speed = 340 +@export var gravity = 50 +var jump_count = 1 @export var jump_strength = 100 - -var jump_count_current = 2; +var is_touching_floor : bool = true +var coyote_timer : float = 0.2 # 200 millisecond buffer var input_direction = 0 #To keep track of which direction we where moving in last frame -func get_input(): +func get_input(delta): var left = Input.is_action_pressed("player_left") var right = Input.is_action_pressed("player_right") if left and right: - input_direction = input_direction + input_direction = 0 elif left: input_direction = -1 elif right: @@ -22,20 +22,32 @@ func get_input(): else : input_direction = 0 + # This line updates the player's velocity velocity.x = input_direction * speed - if is_on_floor(): # rest the jump count - jump_count_current = jump_count + if is_on_floor(): + # reset the jump count + is_touching_floor = true + jump_count = 1 + coyote_timer = 0.2 - if Input.is_action_just_pressed("player_jump") and jump_count_current > 0: + if not is_on_floor(): + if coyote_timer > 0.0: + coyote_timer -= delta + else: + jump_count = 0 + + if Input.is_action_just_pressed("player_jump") and jump_count > 0: velocity.y = -1 * jump_strength - jump_count_current = jump_count_current-1 - elif Input.is_action_pressed("player_jump"): #Fall less fast if we keep holding the button + jump_count = 0 + is_touching_floor = false + elif Input.is_action_pressed("player_jump"): #Fall less fast if we keep holding the button velocity.y += -1 * 25 func _physics_process(delta): - get_input() + get_input(delta) velocity.y += gravity move_and_slide() + print(jump_count)