iphone - 如何用cocos2d-iphone旋转 Sprite 180度?

标签 iphone ios cocos2d-iphone

-(void) ccTouchMoved:(UITouch *)touch withEvent:(UIEvent *)event
    {
        CGPoint location = [touch locationInView:[touch view]];
        location = [[CCDirector sharedDirector] convertToGL:location];

        shootVector = ccpSub(location, cannon.position);
        CGFloat shootAngle = ccpToAngle(shootVector);
        cocosAngle = CC_RADIANS_TO_DEGREES(-1 * shootAngle);

        CGFloat rotateDiff = cocosAngle;    
        if (rotateDiff > 180)
            rotateDiff -= 360;
        if (rotateDiff < -180)
            rotateDiff += 360;    

        CGFloat rotateSpeed = 360; 
        rotateDuration = fabs(rotateDiff / rotateSpeed);

        [cannon runAction:[CCSequence actions:
                           [CCRotateTo actionWithDuration:rotateDuration angle:cocosAngle],
                           [CCCallFunc actionWithTarget:nil selector:nil],
                           nil]];

        top.rotation = cannon.rotation;
    }

上面的代码导致触摸时旋转 360 度,相反,我想将我的大炮旋转 180 度或更小..

任何帮助将不胜感激。

最佳答案

使用CCRotateBy命令而不是CCRotateTo命令将导致旋转一定量而不是转到某个位置。调用它的方式与 CCRotateTo 相同,如下所示:

[CCRotateBy actionWithDuration:rotateDuration angle:180]

关于iphone - 如何用cocos2d-iphone旋转 Sprite 180度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16084135/

相关文章:

ios - 如何仅设置底角的半径

iphone - 搜索时滚动替换表格 View 单元格值

ios - 在 iPhone 上解析时格式化 JSON 以换行

ios - 如何更改 UICollectionViewCell 初始布局位置?

iOS + Cocos2D : Simple Colission/Bounce (do I need box2d/chipmunk? )

ios - 使用音频录制的URL连续播放音频文件

ios - iTunes 上带有光泽效果的应用程序图标

ios - 如何创建看起来像警报 View 的自定义 View ?

ios - 添加到移动 Sprite 时,CCParticleSystemQuad 未被释放

objective-c - 如何在 UIView 上添加 CCSprite