炸弹 - Cocos2d/Box2d

问题描述:

我有一个球和一颗炸弹。我需要做的就是,当球与炸弹相撞时,炸弹爆炸将球从与炸弹相反的方向推离球抛出。炸弹 - Cocos2d/Box2d

例如,如果球被抛出45度然后撞上炸弹,炸弹爆炸并以-45度的角度将炸弹推离炸弹。

这可能吗?如果有的话,有人能带领我走向正确的方向吗?

这是可能的。实施你自己的b2ContactListener来查找炸弹球碰撞。然后根据它的位置和炸弹位置对线球施加线性冲量。

+0

我有一个b2ContactListener,但我找不到任何线性冲动 – Jonathan

+1

有一个方法ApplyLinearImpulse的b2Body – Andrew

如果你想完全放弃物理模拟(这几乎是你写的),那么你可以不使用Box2D,或者只能用于碰撞检测。

要仅将它用于碰撞检测,您只需将您的身体设置为传感器,并在检测到碰撞时将其以您想要的角度发送(将角度减去或相加,当范围的最大值为满足)。

如果你想使用物理模拟(对我来说更有意义),那么只需使用正确的掩模将它们设置为相互碰撞并根据需要设置恢复原状(弹性)即可。这听起来像你可能希望你的球是一个动态的物体,你的炸弹是静态的(我认为这就是他们所说的)。

显然,无论哪种情况,您都需要设置任何动画或粒子发射器来触发碰撞。

+0

我仍然想使用Box2D为我的应用程序。我所说的只是当球与炸弹相撞时,炸弹被摧毁,并且哪个角度玩家将球“弹”在炸弹中,球就会朝相反的方向移动。例如。球以45度的角度朝着炸弹“轻弹”,炸弹以-45度角爆炸迫使球(基本上,如果他们将球向右弹向炸弹并且球击中炸弹,则弹力它在左边) – Jonathan

+0

那么如果你想要完整的物理模拟,那么你不必担心45度角方面(或任何角度)。只要使炸弹具有非常大的质量或将其设置为静态物体即可。实际上,这甚至不是必须的,但你可能想要调整这些东西以获得你想要的方式的碰撞反应。在完成碰撞后,您只需移除炸弹体,球就会自行反弹。 –

当球和炸弹发生碰撞时,不用对线球施加线性冲击,你可以尝试在很短的时间内增大炸弹的体积。放大炸弹的大小后,你可以摧毁炸弹的身体。

放大的弹体会将球推向正确的方向。