【问题标题】:How to avoid getting a 'buffered' collision callback after re-starting Physics in Corona SDK?如何避免在 Corona SDK 中重新启动物理后获得“缓冲”碰撞回调?
【发布时间】:2012-09-18 00:54:48
【问题描述】:

背景: * 在此处使用 Corona SDK 和物理函数 * 找到了我遇到的烦人问题 * 在这个游戏中我暂停物理,然后我重新定位我的玩家对象并重新启动(开始)物理 * 我看到的是一个我没有预料到的碰撞事件触发,因为我重新定位后玩家不在一个物体附近 * 所以我猜这是之前发生的一些碰撞的遗留物

问题:如何避免在启动物理引擎后直接在此处发生“缓冲”/“多余”碰撞事件???

【问题讨论】:

  • 问题以另一种方式提出:Box2D 中是否有任何方法可以“清除”对象或对象与传感器之间的任何未决碰撞事件?

标签: lua box2d coronasdk


【解决方案1】:

Box2D 因出现此类问题而臭名昭著……我猜你唯一能做的就是将玩家移动的地方存储起来,忽略第一次碰撞并重置标志……

或者你应该删除播放器并重新创建它。

Box2D 讨厌你自己移动对象(即使是在暂停时)。

【讨论】:

  • 唯一的麻烦是它不会每次都发生 - 所以我想我可以检查一下碰撞是什么,然后从这个信息中判断它是否来自前一个阶段。我已经在移除物理体并重新添加。那么在 Box2D 中没有办法“清除”对象之间或对象和传感器之间的任何未决碰撞事件?
  • 我不知道,甚至在 C++ 中也不知道,但我上次在 C++ 中使用 Box2D 已经两年了...
猜你喜欢
  • 2016-03-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多