ios - didBeginContact 没有在快速移动的 Sprite 上调用

标签 ios sprite-kit skphysicsbody skphysicsworld

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

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

同样,当 Sprite 以低速移动时,物理效果很好。

最佳答案

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

关于ios - didBeginContact 没有在快速移动的 Sprite 上调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29134918/

相关文章:

ios - 与 "Type ' ViewController' 相关的编译和构建错误不符合协议(protocol) 'UITableViewDataSource' ”

ios - 沿其中心旋转 SKShapeNode

box2d - 恢复为 0 的 SKPhysicsBody 仍然反弹

swift - 当玩家节点与另一个节点碰撞时游戏结束,当游戏只应在玩家与边界碰撞时结束

ios - 无法缩放/缩放带有附加 SKPhysicsJoints 的 SKSpriteNode

iphone - 如何在 AQClient 线程中追踪 iPad 应用程序的奇怪崩溃?

ios - downloadtaskwithrequest 和 downloadtaskwithurl 有什么区别

ios - 在应用程序关闭时使用 SwiftUI 处理传入的自定义 URL 类型

swift - 在 Swift 2.1 的 spritekit 游戏中获取 EXC_BAD_ACCESS

ios - NodeAtPoint 方法应该什么时候返回 SKShapeNode?