Столкновение двигателя Годо с 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