【问题标题】:Box2D object gets stuck when should destroy the objects it's stuck betweenBox2D 对象在应该销毁它卡在其间的对象时卡住
【发布时间】:2012-05-25 02:44:30
【问题描述】:

我正在将 Cocos2D 和 Box2D 用于具有一些物理特性的游戏。偶尔会出现一个问题,我的“球/子弹/毁灭者”对象卡在两个“目标”对象之间,并且需要很长时间才能出来。

这很愚蠢,因为子弹和目标物体之间的碰撞会破坏目标。 (通常,当然,这很好用。)

它没有像this question 那样进入睡眠状态,因为它在两个物体之间的狭小空间里疯狂地振动。

我将子弹作为 Box2D 中的“子弹”对象。

物体在前一帧中是否有一些最小距离才能算作碰撞?

【问题讨论】:

    标签: ios cocos2d-iphone box2d


    【解决方案1】:

    诀窍在于,对于给定的联系人“集群”,Box2D 联系人监听器调用(按此顺序):

    BeginContact()
    PreSolve() // As many times as necessary
    PostSolve() // As many times as necessary
    EndContact()
    

    默认情况下,我只从EndContact() 获取联系人,这意味着在评估其效果之前会发生一系列快速碰撞。我将我的destroy-type 代码移动到PostSolve(),一切都很好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多