lakewood/Assets/Characters/Friendly/Tellik/tellick.gd

53 lines
1.1 KiB
GDScript

extends CharacterBody2D
const SPEED = 600.0
const JUMP_VELOCITY = -1000.0
const MAX_JUMP_DURATION = 0.3
const MIN_JUMP_DURATION = 0.01
const GRAVITY = 980
const FALL_GRAVITY_MULTIPLIER = 2
var jump_timer = 0.0
var is_jumping = false
func _physics_process(delta):
# Apply gravity
if not is_on_floor():
var gravity_multiplier = FALL_GRAVITY_MULTIPLIER if velocity.y > 0 else 2
velocity.y += GRAVITY * gravity_multiplier * delta
# Handle Jump
if Input.is_action_just_pressed("jump") and is_on_floor():
start_jump()
if is_jumping:
if Input.is_action_pressed("jump"):
continue_jump(delta)
else:
end_jump()
# Handle horizontal movement
var direction = Input.get_axis("move_left", "move_right")
if direction:
velocity.x = direction * SPEED
else:
velocity.x = move_toward(velocity.x, 0, SPEED)
move_and_slide()
func start_jump():
velocity.y = JUMP_VELOCITY
is_jumping = true
func continue_jump(delta):
pass
func end_jump():
if velocity.y < 0:
velocity.y *= 0.20
is_jumping = false
func _on_kill_zone_body_entered(body: Node2D) -> void:
pass # Replace with function body.