2013-02-25 40 views
2

我使用CMAttitude中的俯仰和滚动来控制iPhone游戏中某个点的位置。当我开始的水平,我注册了参考的态度和比赛期间我使用陀螺仪CMAttitude设置自定义参考框架

[attitude multiplyByInverseOfAttitude:attitudeRef] 

获得相对于参考当前的态度,进而控制点的水平位置(在俯仰财产)和垂直位置(具有滚动属性)。

问题是,我想添加一个功能,只重置参考姿态attitudeRef的roll组件到自定义值。 CMAttitude euler角度是只读属性,我显然无法用自定义的滚动和音调创建自己的自定义CMAttitude对象。

我该怎么做?

回答

0

不幸的是,没有简单的方法来实现这一点。如您所述,CMAttitude不提供任何功能来操纵它或创建实例。这就是说你必须自己进行乘法运算。此外,你将需要一个额外的四元数类,因为CMQuaternion只是一个结构。

好消息是,您需要的所有代码已经在cocoamath项目中可用。请查看How multiplyByInverseOfAttitude (CMAttitude Class) is implemented?了解一些指导以及四元数学基础知识的更多链接。

+0

谢谢,我会尝试四元数方法。 – user1347271 2013-02-27 21:06:43