1

我有一个游戏,用户在我的主要精灵周围拖动。主精灵与其他精灵碰撞得很好,除非用户非常快速地拖动主精灵。有时,当主精灵快速移动时,物理实体正好相互穿过,两个精灵突然重叠。我有一个断点集,它记录了 didBeginContact 的命中计数,但它没有被命中。

精灵可以移动多快并且仍然被 didBeginContact 覆盖是否有限制?我是否允许用户以比游戏循环处理碰撞的速度更快的速度移动精灵?

同样,当精灵以低速移动时,物理运行正常。

4

2 回答 2

2

请记住,这些东西都是逐帧计算的。您可能将精灵移动得太快,以至于它以太少的帧数出现在屏幕的另一侧而不能算作碰撞。如果有人痉挛地移动手指,它可能不会抓住它。您可以对精灵或其他东西设置某种速度限制。

于 2015-03-19T00:21:52.467 回答
1

尝试设置物理体usesPreciseCollisionDetection = YES

于 2015-03-19T01:44:04.883 回答