0

iO で Cocos3D を使用しています。パン ジェスチャを使用してオブジェクトを回転させる必要があります。

switch (gesture.state)
{
    case UIGestureRecognizerStateBegan:
        saveState = Dobj.rotation;
    break;
    case UIGestureRecognizerStateChanged:
        CC3Vector rotateVector = CC3VectorMake(gesture.translation.y, gesture.translation.x, 0.0f);
        Dobj.rotation = CC3VectorAdd(saveState, rotateVector);
    break;
    case UIGestureRecognizerStateEnded:
    break;
    default:
    break;
}

このようにして、object( Dobj) を自分自身で回転させることができます。しかし、軸も回転しているようで、それが本当に奇妙な回転を引き起こしています。

どうすればこれを修正できますか?

4

1 に答える 1

1

だからここに私が私の問題を解決した方法があります。

switch (gesture.state)
{
    case UIGestureRecognizerStateBegan:
        saveState = CC3VectorMake(0.0f, 0.0f, 0.0f);
    break;
    case UIGestureRecognizerStateChanged:
         CC3Vector rotateVector = CC3VectorMake(gesture.translation.y, gesture.translation.x, 0.0f);
        [Dobj rotateBy:CC3VectorDifference(rotateVector, saveState)];
        saveState = rotateVector;
    break;
    case UIGestureRecognizerStateEnded:
    break;
    default:
    break;
}

メソッドを使用するrotateBy:と、軸を変更せずにオブジェクトのみを回転させるようです

于 2013-03-28T09:17:59.410 に答える