【问题标题】:Bombs - Cocos2d/Box2d炸弹 - Cocos2d/Box2d
【发布时间】:2011-07-29 23:58:53
【问题描述】:

我有一个球和一个炸弹。我需要做的就是,当球与炸弹相撞时,炸弹会爆炸,将球推向与投掷球相反的方向远离炸弹。

例如,如果球以 45 度角抛出并击中炸弹,则炸弹爆炸并将球以 -45 度角推离炸弹。

这可能吗?如果是这样,有人能引导我走向正确的方向吗?

【问题讨论】:

    标签: iphone cocos2d-iphone box2d


    【解决方案1】:

    这是可能的。实现您自己的 b2ContactListener 以查找炸弹-球碰撞。然后根据球和炸弹的位置对球施加线性脉冲。

    【讨论】:

    • 我有一个 b2ContactListener 但我找不到任何线性脉冲
    • 有一个b2Body的ApplyLinearImpulse方法
    【解决方案2】:

    如果您想完全放弃物理模拟(这几乎是您编写的内容),那么您可以不使用 Box2D,也可以仅将其用于碰撞检测。

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

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

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

    【讨论】:

    • 我仍然想在我的应用程序中使用 Box2D。我要说的是,当球与炸弹相撞时,炸弹就会被摧毁,而无论玩家以哪个角度将球“弹”在炸弹上,球都会向相反的方向移动。例如。球以 45 度角朝炸弹“轻弹”,炸弹爆炸,迫使球以 -45 度角(基本上,如果他们将球向右轻弹到炸弹并且球击中炸弹,那么炸弹就会强制它在左边)
    • 好吧,如果您想要完整的物理模拟,那么您无需担心 45 度角(或任何角度)。只需使炸弹具有非常大的质量或将其设置为静态对象即可。实际上,这甚至不是必需的,但您可能需要调整这些东西以获得您想要的碰撞反应。完成碰撞后,您只需移除炸弹体,球就会自行弹回正确的方向。
    【解决方案3】:

    当球和炸弹碰撞时,你可以尝试在很短的时间内扩大炸弹的大小,而不是对球施加线性冲量。放大炸弹的尺寸后,您可以摧毁炸弹体。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-05-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-08
      相关资源
      最近更新 更多