我正在尝试仅使用设备动作在x轴上移动SKSpiteNode。向左或向右倾斜设备以移动精灵。我正在阅读关于CoreMotion的内容,但我对如何在我的游戏中实现这一点表示怀疑.CoreMotion是否适合这个?和哪些功能使用? 谢谢你的任何帮助。
答案 0 :(得分:2)
您应该使用CoreMotion框架。以下是您如何收听核心动态更新。
1-实例化CMMotionManager
实例。该课程负责提供动作事件。
lazy var motionManager: CMMotionManager = {
let motion = CMMotionManager()
motion.accelerometerUpdateInterval = 1.0/10.0 // means update every 1 / 10 second
return motion
}()
2-调用运动管理器的startAccelerometerUpdates
方法。这将启动您的运动经理。
self.motionManager.startAccelerometerUpdates()
3-在update
子类的SKScene
方法中,您可以从运动管理器中读取加速度计值。以下是我如何使用它。
let xForce = self.motionManager.accelerometerData.acceleration.x
self.playerNodeBody.velocity = CGVector(dx: xForce, dy: 0)