Я новичок в скрипте GD и пытаюсь выучить язык.
Я делаю базовый c символьный контроллер. Я хочу сделать игру с функцией двойного прыжка и не знаю, как это сделать. У меня уже написан код ниже.
extends KinematicBody2D
const UP = Vector2(0,-1)
var motion = Vector2()
var jumps = 2
var isAddingToJumps = true;
func _physics_process(delta):
motion.y += 9.81
if Input.is_action_pressed("ui_right"):
motion.x = 100
elif Input.is_action_pressed("ui_left"):
motion.x = -100
else:
motion.x = 0
if isAddingToJumps and is_on_floor():
jumps += 2
motion.y = 0
isAddingToJumps = false
if not is_on_floor():
isAddingToJumps = true
if Input.is_action_just_pressed("ui_up"):
if jumps > 0:
motion.y = -400
jumps -= 1
move_and_slide(motion, UP)
После некоторой отладки, я думаю, что я знаю проблему с кодом. Когда объект касается пола, он думает, что касается и не касается его одновременно. Есть ли какой-нибудь простой способ исправить это?
Я должен также упомянуть, что горизонтальное движение работает просто отлично, и когда он прыгает, это работает, программа просто не знает, когда прыгнуть