summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--level_test.tscn3
-rw-r--r--player.gd9
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: