Столкновение двигателя Годо с KinematicBody не работает

Я возился с двигателем Годо и попробовал небольшую игру.

Но я не могу получить информацию о столкновении.

if is_colliding():
    print ("Collision with " + get_collider())
    get_node("Sprite").set_texture(walk_cycle_right_1)
    move_state_right = 1
    set_pos(Vector2(get_pos().x -10, get_pos().y))

Всегда печатает false, Я двигаю своего персонажа (KinematicBody2d -> Sprite/CollisionShape2d) с set_pos команда.

1 ответ

Решение

Для кинематического тела вам нужно использовать move или move_to, чтобы вызвать столкновение. Если вам действительно нужно использовать set_pos, проверьте collisionshape2d.shape и выполните проверку столкновения самостоятельно.

В документации Godot приведен пример, где представлено перемещение KinematicBody2D и обработка столкновений: http://docs.godotengine.org/en/stable/tutorials/2d/kinematic_character_2d.html

Полное определение класса KinematicBody2D доступно также в документации Godot: http://docs.godotengine.org/en/stable/classes/class_kinematicbody2d.html?highlight=KinematicBody2D

Другие вопросы по тегам