Multi-jump system, as many umps as desired.

Instead of hard-coding the jumping mechanic to solely 2 jumps, i.e. double-jump, allow for any number of jumps. By default this is still set to 2, but more are possible if required.
pull/11/head
Lamoot 2023-12-13 20:50:35 +07:00 committed by GitHub
parent 77a16e7baa
commit 50efc5d5d5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 9 additions and 18 deletions

@ -2,6 +2,7 @@ extends CharacterBody3D
@export_subgroup("Properties") @export_subgroup("Properties")
@export var movement_speed = 5 @export var movement_speed = 5
@export_range(0, 100) var number_of_jumps:int = 2
@export var jump_strength = 8 @export var jump_strength = 8
@export_subgroup("Weapons") @export_subgroup("Weapons")
@ -25,8 +26,7 @@ var gravity := 0.0
var previously_floored := false var previously_floored := false
var jump_single := true var jumps_remaining:int
var jump_double := true
var container_offset = Vector3(1.2, -1.1, -2.75) var container_offset = Vector3(1.2, -1.1, -2.75)
@ -148,15 +148,8 @@ func handle_controls(_delta):
if Input.is_action_just_pressed("jump"): if Input.is_action_just_pressed("jump"):
if jump_single or jump_double: if jumps_remaining:
Audio.play("sounds/jump_a.ogg, sounds/jump_b.ogg, sounds/jump_c.ogg") action_jump()
if jump_double:
gravity = -jump_strength
jump_double = false
if(jump_single): action_jump()
# Weapon switching # Weapon switching
@ -170,17 +163,15 @@ func handle_gravity(delta):
if gravity > 0 and is_on_floor(): if gravity > 0 and is_on_floor():
jump_single = true jumps_remaining = number_of_jumps
gravity = 0 gravity = 0
# Jumping # Jumping
func action_jump(): func action_jump():
Audio.play("sounds/jump_a.ogg, sounds/jump_b.ogg, sounds/jump_c.ogg")
gravity = -jump_strength gravity = -jump_strength
jumps_remaining -= 1
jump_single = false;
jump_double = true;
# Shooting # Shooting