From 598c69ebc933cf3561eae0e8504f14b8bd6712ef Mon Sep 17 00:00:00 2001 From: Jan Tuomi Date: Fri, 14 Nov 2025 12:37:55 +0200 Subject: Add high jump with long press --- level_test.tscn | 3 ++- player.gd | 9 ++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/level_test.tscn b/level_test.tscn index 63b3541..18f2aa5 100644 --- a/level_test.tscn +++ b/level_test.tscn @@ -454,8 +454,9 @@ tile_set = SubResource("TileSet_y32ns") position = Vector2(90, 64) collision_layer = 2 speed = 70.0 -jump_strength = 320.0 +jump_strength = 200.0 coyote_max = 10 +jump_held_coef = 0.8 [node name="Camera2D" type="Camera2D" parent="Player"] position = Vector2(0, -15) diff --git a/player.gd b/player.gd index f2127ac..fd5cb58 100644 --- a/player.gd +++ b/player.gd @@ -4,6 +4,7 @@ extends CharacterBody2D @export var speed: float @export var jump_strength: float @export var coyote_max: int +@export var jump_held_coef: float var gravity = ProjectSettings.get_setting("physics/2d/default_gravity") var prev_dir: float = 0.0 @@ -31,7 +32,13 @@ func _process(_delta: float) -> void: $AnimatedSprite2D.set_animation("idle") func _physics_process(delta: float): - velocity.y += gravity * delta + var grav_coef = 1.0 + if velocity.y < 0 and Input.is_action_pressed("jump"): + grav_coef = 1.0 + (jump_held_coef * velocity.y / jump_strength) + + #print_debug("1.0 + (", velocity.y, " / (", jump_held_coef, " * ", jump_strength, ")) = ", grav_coef) + velocity.y += grav_coef * gravity * delta + if is_on_floor(): coyote = 0 else: -- cgit v1.3