is_on_floor отрабатывает в 2 из 3 случаев, при движении влево/право?
Есть базовый скрипт для перемещения и прыжка.
extends KinematicBody2D
export (int) var SPEED #400
export (int) var GRAVITY #50
export (int) var JUMP_SPEED #300
var velocity := Vector2.ZERO
onready var animated_sprite := $AnimatedSprite
func _ready():
pass
func _physics_process(delta):
applay_gravity()
jump()
move()
velocity = move_and_slide(velocity, Vector2.UP)
func move():
if Input.is_action_pressed("left"):
velocity.x = -SPEED
print(is_on_floor()) #Будет на скрине
elif Input.is_action_pressed("right"):
velocity.x = SPEED
print(is_on_floor())
else:
velocity.x = 0
func jump():
if Input.is_action_just_pressed("jump") and is_on_floor():
velocity.y = -JUMP_SPEED
func applay_gravity():
if is_on_floor():
velocity.y = 0
else:
velocity.y += GRAVITY
Почему то когда персонаж начинает двигаться в лево\право "is_on_floor()" начинает давать ложную информацию.
Приложу скрин что ты лучше понять вопрос и скрин с настройками игрока

