swift - 加速度计输入滞后

标签 swift sprite-kit accelerometer

我将加速度计用作游戏的转向控制。 iphone 的倾斜度决定了 Sprite 的速度是正速度、负速度还是零速度。问题是在经历了几次之后我开始注意到严重的输入滞后。我的船速度在帧更新功能中被修改。我在它之前添加了一个打印语句,发现它可能需要几秒钟的时间才能改变速度以匹配 iphone 倾斜。这让游戏感觉非常笨拙。为什么会这样?

if motionManager.isAccelerometerAvailable == true {
            motionManager.startAccelerometerUpdates(to: OperationQueue.current!, withHandler:{
                data, error in
                if (data!.acceleration.y) < -0.05 {
                    self.velocity = -500
                }

                else if data!.acceleration.y > 0.05 {
                    self.velocity = 500
             }
                else{
                    self.velocity = 0
                }

            })

        }


override func update(_ currentTime: CFTimeInterval) {
    moveBG()
    removeBullets()
    print(velocity)
    self.ship.physicsBody?.velocity.dx = velocity
}

最佳答案

输入延迟是由于我没有为我的运动管理器设置加速度计更新间隔。将值设置为 0.1 可以解决我的问题并提供流畅的游戏体验

关于swift - 加速度计输入滞后,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44476559/

相关文章:

ios - 将 React Native RCTRootView 关闭回 Native ViewController

ios - 如何将方法中的 SKSpriteNode 添加到另一个类中?

python - 如何使用 python 读取 Windows 平板电脑中的加速度计?

iPhone 加速度计速度和距离

ios - 为什么子类在框架中不起作用,但扩展在 Swift 中起作用?

swift - 单击菜单项打开 URL

swift - 如何在MapView中绘制用户的路线

ios - SKSpriteNode 在碰撞时失去速度

swift - 预加载场景以防止延迟?

ios - iphone X 最大加速度计和陀螺仪频率