gpt4 book ai didi

swift - Sprite 位置检测延迟

转载 作者:行者123 更新时间:2023-11-28 07:37:21 24 4
gpt4 key购买 nike

我正在尝试准确确定以速度移动的节点撞击屏幕边缘的点。目前,当检查其位置是否为 >=self.frame.maxX 时,节点的位置稍后注册,超出屏幕边缘(移动速度更快时更是如此) (使用 == 根本不会注册)。

最初尝试使用应用于 Sprite 的位掩码和充当墙的边界物理体 - 并遇到 well knownSpriteKit 中的碰撞检测问题 - 我决定选择默认更新功能,我在其中检查 x 位置。

然而,这两种方法似乎都有问题。根据我的阅读,update 每秒最多调用 60 次,因此在帧之间,节点的位置稍后注册。

出于同样的原因,我认为使用 didBegin 的碰撞检测会遇到同样的问题,即使物理体的 collisionBitMask 未设置为零 - 这意味着即使当节点弹开时。

并且检查由时间间隔为 0.00001 的计时器调用的自定义函数中的位置也不准确。

目前还没有可接受的实现 - 我如何才能精确检查位置?

最佳答案

SKPhysicsBody 不是那么精确,有时会出现小错误,您可以尝试在函数 didBegin 中使用它。这对我一直很有帮助,也许对你也有用。

if contact.contactPoint.x >= self.frame.maxX - 5 { 
//do something
}
if contact.contactPoint.x <= self.frame.minX + 5{
//do something

我不知道你说的“走得更快”是什么意思,这个例子在记录速度刚好低于 400 时没有问题,这有点快。

关于swift - Sprite 位置检测延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53018067/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com