2

CMAttitude のピッチとロールを使用して、iPhone ゲームのポイントの位置を制御しています。レベルを開始すると、基準姿勢を登録し、ゲーム中に使用します

[attitude multiplyByInverseOfAttitude:attitudeRef] 

基準に対する現在の姿勢を取得するには、ポイントの水平位置 (pitch プロパティを使用) と垂直位置 (roll プロパティを使用) を制御します。

問題は、基準姿勢 AttitudeRef のロール成分のみをカスタム値にリセットする機能を追加したいということです。CMAttitude のオイラー角度は読み取り専用のプロパティであり、カスタムのロールとピッチを使用してカスタムの CMAttitude オブジェクトを自分で作成することはできないようです。

どうすればそれができますか?

4

1 に答える 1

0

残念ながら、これを実現する簡単な方法はありません。あなたが述べたように、CMAttitudeそれを操作したりインスタンスを作成したりする機能は提供していません。つまり、乗算は自分で行う必要があります。さらに、 CMQuaternionは単なる構造体であるため、クォータニオン用の追加のクラスが必要になります。

幸いなことに、必要なコードはすべて、たとえばcocoamathプロジェクトで既に利用可能です。どのようにmultiplyByInverseOfAttitude (CMAttitude Class) が実装されているかを見てください。いくつかのガイダンスと四元数計算の基本へのリンクについては。

于 2013-02-26T10:13:56.247 に答える