6

我正在摆弄 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。我正在使用命令移动我的角色(KinematicBody2d-> Sprite/CollisionShape2dset_pos

4

1 回答 1

2

对于运动体,您需要使用 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

于 2017-01-04T10:45:23.160 回答