2013-02-25 84 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