我正在尝试制作一个玩家向物体射击的游戏,并且当“子弹”击中物体时应该消失。对,这很好用,但现在我正在努力做到这一点,只有当子弹产生一定的力/冲动时,物体才会消失。有人知道怎么做吗?
目前,为了得到我正在做的碰撞:
collision_handler = space.add_collision_handler(1, 2)
collision_handler.begin = collision_happened
我正在尝试制作一个玩家向物体射击的游戏,并且当“子弹”击中物体时应该消失。对,这很好用,但现在我正在努力做到这一点,只有当子弹产生一定的力/冲动时,物体才会消失。有人知道怎么做吗?
目前,为了得到我正在做的碰撞:
collision_handler = space.add_collision_handler(1, 2)
collision_handler.begin = collision_happened
您应该使用 post_solve 回调。在该回调中,您可以检查 arbiter.total_impulse 是否大于某个值。根据您的逻辑,您可能还想检查 arbiter.is_first_contact 是否为真。
这来自基于 C 的示例,但高度相关: https ://github.com/slembcke/Chipmunk2D/blob/master/demo/ContactGraph.c
几点注意事项: