我正在开发一个包含场景(SceneKit)的iOS / Swift项目。
我想要做的是在用户旋转手机时旋转SCNCamera
。
这就是我所做的:
motionManager = CMMotionManager()
motionManager.accelerometerUpdateInterval = 0.1
motionManager.startAccelerometerUpdates(to: OperationQueue.main) { [weak self] (data: CMAccelerometerData?, error: Error?) in self?.update_rotation(p: (data?.acceleration)!) }
并在update_rotation
函数中:
camera_node.eulerAngles = SCNVector3Make(angle_x,angle_y,angle_z)
camera_node
是我的SCNNode
相机对象。 angle_x
和angle_z
是根据加速度计数据计算得出的。 (我只是将加速度计值乘以90并将其转换为弧度)。 angle_y
是从指南针(北角)计算的。
我的问题来自angle_z
。这很奇怪,因为eulerAngles.z
属性的行为取决于angle_y
值。
换句话说,如果朝北方向看,一切都很好。
当我向南看时,angle_z
需要倒置。
我不明白为什么。
答案 0 :(得分:0)
def main():
# your code goes here
if input('Play again?') == 'yes':
main()
我在iPad上使用我的游乐场应用程序尝试此操作