0

我在 iOs 上使用 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 回答