使一个移动的物理体与其他人发生碰撞,而不会受到影响

时间:2017-04-28 10:07:15

标签: swift sprite-kit

我有一个带有物理实体的SpriteKit场景,在某些时候,我添加了一个精灵,我希望与其他人进行“单向碰撞”:我希望它们与它发生碰撞,但我希望它不受影响并继续其轨迹就像它没有碰到任何东西一样。

部分工作的解决方案是影响这个物理体的真正高质量,以便它上面的碰撞对其方向和速度的改变可以忽略不计,但不幸的是,这导致其他物体真的反弹强烈地从我的对象,因为它带来了很多能量。

有没有办法获得我期望的行为?

谢谢

2 个答案:

答案 0 :(得分:1)

你所要做的就是设置另一个身体的collisonBitMask以包含你想要不受影响的身体的categoryBitMask,然后确保身体的collsionBitMAsk是未受影响的不包括任何不受其影响的categoryBitMasks个身体。

然后它会愉快地粉碎所有的东西

答案 1 :(得分:0)

史蒂夫艾夫斯'答案很完美。但是我想在将来添加它,如果你确实需要使用质量更高的物体并且不希望其他物体以令人难以置信的速度反弹它,那么修改物体的物理体的恢复质量较小。

默认恢复原则值为0.2,它表示身体与另一个身体发生碰撞后能量损失了多少。