0

CCSprite を回転させて車のステアリングのように動作させる方法はありますか?CCSprite でタッチを離すと、ステアリングとまったく同じようにスムーズに元の位置に自動的に戻るはずです!以下のコードを使用しています。

-(void)ccTouchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
    {

        UITouch *touch=[touches anyObject];
        //acquire the previous touch location
        CGPoint firstLocation = [touch previousLocationInView:[touch view]];
         location = [touch locationInView:[touch view]];


        CGPoint touchingPoint = [[CCDirector sharedDirector] convertToGL:location];
        CGPoint firstTouchingPoint = [[CCDirector sharedDirector] convertToGL:firstLocation];

        CGPoint firstVector = ccpSub(firstTouchingPoint, Steering.position);
        CGFloat firstRotateAngle = -ccpToAngle(firstVector);
        CGFloat previousTouch = CC_RADIANS_TO_DEGREES(firstRotateAngle);

        CGPoint vector = ccpSub(touchingPoint, Steering.position);
        CGFloat rotateAngle = -ccpToAngle(vector);
        CGFloat currentTouch = CC_RADIANS_TO_DEGREES(rotateAngle);
        dialrotation+=currentTouch-PreviousTouch;
        sprite.rotation=dialrotation;
        }

これで CCSprite はスムーズに回転しますが、カー ステアリングのように元の位置に戻す方法がわかりません。Cocos2D でそうする方法はありますか?

4

1 に答える 1

0

ccTouchesBeganメソッドで sprite.rotation の値をどこかに保存し、この保存された値を使用してスプライトでアクションをccTouchesEnded実行します。CCRotateTo

于 2012-08-26T03:38:01.097 に答える