Godot 引擎与 KinematicBody 的碰撞不起作用
Godot engine collision with KinematicBody doesn't work
我正在摆弄 Godot 引擎并尝试了一个小游戏。
但我似乎无法获得有关碰撞的信息。
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
。我正在使用 set_pos
命令移动角色 (KinematicBody2d
-> Sprite/CollisionShape2d
)。
对于kinematicbody你需要使用move或者move_to来触发碰撞。
如果你真的需要使用set_pos,请检查collisionshape2d.shape并自己进行碰撞检查。
Godot 文档中有一个示例,其中介绍了 KinematicBody2D 运动和碰撞处理:http://docs.godotengine.org/en/stable/tutorials/2d/kinematic_character_2d.html
KinematicBody2D class 的完整定义也可在 Godot 文档中找到:
http://docs.godotengine.org/en/stable/classes/class_kinematicbody2d.html?highlight=KinematicBody2D
我正在摆弄 Godot 引擎并尝试了一个小游戏。
但我似乎无法获得有关碰撞的信息。
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
。我正在使用 set_pos
命令移动角色 (KinematicBody2d
-> Sprite/CollisionShape2d
)。
对于kinematicbody你需要使用move或者move_to来触发碰撞。 如果你真的需要使用set_pos,请检查collisionshape2d.shape并自己进行碰撞检查。
Godot 文档中有一个示例,其中介绍了 KinematicBody2D 运动和碰撞处理:http://docs.godotengine.org/en/stable/tutorials/2d/kinematic_character_2d.html
KinematicBody2D class 的完整定义也可在 Godot 文档中找到: http://docs.godotengine.org/en/stable/classes/class_kinematicbody2d.html?highlight=KinematicBody2D