最近,我一直在编写一款需要设备间距才能移动角色的游戏。然而,为了使得用户不必每次都在固定在一个起始点的设备上玩游戏,每次用户按下游戏时我希望应用程序获得初始倾斜。但这不起作用,我添加了一个测试按钮,假设它运行代码:
func recordTilt() {
InitialTilt = MovementManager.deviceMotion?.attitude
print(InitialTilt)
}
这个问题是每当按下按钮时,InitialTilt将返回nil。但是,如果InitialTilt在循环中运行,则每次都会返回一个值。
运动经理循环:
func setup() {
MovementManager = CMMotionManager()
MovementManager.deviceMotionUpdateInterval = 0.1
MovementManager.startDeviceMotionUpdates()
InintialTilt = Movementmanager.deviceMotion?.attitude
}
func movementManaging() {
//...
InintialTilt = Movementmanager.deviceMotion?.attitude // returns every
time
//...
}
func update() {
movementManaging()
}
有人可以帮我解释为什么(InintialTilt = Movementmanager.deviceMotion?.attitude)只在循环中返回一个值。
(注意:motionManaging基本上是一个控制玩家动作的循环,如果要扩展玩家......他们会得到的一切都是保留玩家的方法在屏幕上。+ InintialTilt = Movementmanager.deviceMotion?.attitude)