【发布时间】:2011-07-29 23:58:53
【问题描述】:
我有一个球和一个炸弹。我需要做的就是,当球与炸弹相撞时,炸弹会爆炸,将球推向与投掷球相反的方向远离炸弹。
例如,如果球以 45 度角抛出并击中炸弹,则炸弹爆炸并将球以 -45 度角推离炸弹。
这可能吗?如果是这样,有人能引导我走向正确的方向吗?
【问题讨论】:
标签: iphone cocos2d-iphone box2d
我有一个球和一个炸弹。我需要做的就是,当球与炸弹相撞时,炸弹会爆炸,将球推向与投掷球相反的方向远离炸弹。
例如,如果球以 45 度角抛出并击中炸弹,则炸弹爆炸并将球以 -45 度角推离炸弹。
这可能吗?如果是这样,有人能引导我走向正确的方向吗?
【问题讨论】:
标签: iphone cocos2d-iphone box2d
这是可能的。实现您自己的 b2ContactListener 以查找炸弹-球碰撞。然后根据球和炸弹的位置对球施加线性脉冲。
【讨论】:
如果您想完全放弃物理模拟(这几乎是您编写的内容),那么您可以不使用 Box2D,也可以仅将其用于碰撞检测。
要仅将它用于碰撞检测,您只需将您的身体设置为传感器,当检测到碰撞时,您以您想要的角度发送它(减去或添加角度,当满足范围的最大值时滚动)。
如果您想使用物理模拟(对我来说更有意义),那么只需将它们都设置为正确的遮罩以相互碰撞,并根据需要设置您的恢复(弹性)。听起来你可能希望你的球是一个动态的物体,而你的炸弹是一个静态的(我想他们就是这么称呼它的)。
显然,无论哪种情况,您都需要设置任何动画或粒子发射器以在碰撞时触发。
【讨论】:
当球和炸弹碰撞时,你可以尝试在很短的时间内扩大炸弹的大小,而不是对球施加线性冲量。放大炸弹的尺寸后,您可以摧毁炸弹体。
扩大的弹体会将球推向正确的方向。
【讨论】: