Godot引擎与KinematicBody的碰撞并不起作用

时间:2016-12-28 15:38:04

标签: collision godot gdscript

我正在摆弄戈多引擎并尝试了一个小游戏。

但我似乎无法获得有关碰撞的信息。

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 个答案:

答案 0 :(得分:2)

对于运动体,您需要使用move或move_to来触发碰撞。 如果你真的需要使用set_pos,请检查collisionshape2d.shape并自己进行碰撞检查。

Godot文档中有一个示例,其中介绍了KinematicBody2D移动和碰撞处理:http://docs.godotengine.org/en/stable/tutorials/2d/kinematic_character_2d.html

Godot Documentation也提供KinematicBody2D类的完整定义: http://docs.godotengine.org/en/stable/classes/class_kinematicbody2d.html?highlight=KinematicBody2D