ios - 如何计算设备移动的最后两点的加速度计

标签 ios swift swift2 accelerometer core-motion

我正在制作游戏,如果手机在 x 轴上从零点移动到点 20,我需要获取手机移动的最后两个点的加速度计,x 轴上的当前加速度计等于 20,我可以得到它,但我无法获得当前点(20 点)之前的最后一个点(零点),这是当前点的代码:

var currentX: Double = 0.0
// and then in viewDidload :
movementManager.accelerometerUpdateInterval = 0.2
//Start Recording Data
    movementManager.startAccelerometerUpdatesToQueue(NSOperationQueue.mainQueue())           
        { (accelerometerData: CMAccelerometerData?, NSError) -> Void in
self.getvalues((accelerometerData?.acceleration)!)
            if(NSError != nil)
            {
                print("\(NSError)")
            }
}
func getvalues(acceleratiuon:CMAcceleration)
{        
        currentX = acceleratiuon.x
}

最佳答案

有很多方法可以从加速度计中获取最后两个点,但我在我的代码中使用的是 - 我使用了一个线程,该线程以特定的时间间隔将来自传感器的所有点记录在动态列表中,然后使用它在控制 Sprite 的位置。也许这对你有帮助。 谢谢

关于ios - 如何计算设备移动的最后两点的加速度计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35192351/

相关文章:

ios - 如何通过代码设置iOS的系统时区?

ios - 将 alpha 动画设置为 0 无法正常工作

swift - 定义在闭包中使用的泛型类型

ios - 重复图像下载过程

Swift 编译错误 FileBrowser,swift 2.3

ios - Storyboard通过全局值访问 UIControl 属性

iphone - 为什么不直接使用 self.view 在 iPhone SDK 中切换 View ?

objective-c - 在 Swift 中使用轻量级泛型实现 Objective-C 方法

xcode - PerformSegueWithIdentifier 未进行转换

ios - 渲染 View 中的自动布局不会更新其框架