Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios cocos2d中更平滑的精灵旋转?_Ios_Objective C_Cocos2d Iphone - Fatal编程技术网

Ios cocos2d中更平滑的精灵旋转?

Ios cocos2d中更平滑的精灵旋转?,ios,objective-c,cocos2d-iphone,Ios,Objective C,Cocos2d Iphone,我有一个简单的程序,当你按住屏幕时,精灵向上移动,当你放开时,精灵向下移动。因此,在CCTouchesBegind函数中,我旋转精灵: -(void)ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{ player.rotation = -5; } 然后在ccTouchesEnded函数中,我再次旋转它: -(void)ccTouchesEnded:(NSSet *)touches withEvent:(UIEven

我有一个简单的程序,当你按住屏幕时,精灵向上移动,当你放开时,精灵向下移动。因此,在CCTouchesBegind函数中,我旋转精灵:

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

    player.rotation = -5;
}
然后在ccTouchesEnded函数中,我再次旋转它:

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

    player.rotation = 20;
}
所以我想知道是否有办法让旋转变得更慢更平滑?当我运行它时,它看起来非常笨重,我希望它看起来更真实。我没有使用物理引擎(box2d、花栗鼠等)

  • 您可以使用CCRotateBy或CCRotateTo类函数来旋转它。 例如,玩家->运行动作(CCRotateTo::create(1.0f,-5));//在C中++

    这里第一个参数指定旋转的持续时间(当前为1秒),第二个参数指定角度

    但是如果你太频繁地触摸屏幕,这个也可能看起来很奇怪


以下代码适用于cocos2d IOS。但是你也可以把它翻译成C++。这很容易

    CCRotateBy *rotTouchBegin = [CCRotateBy actionWithDuration:1.0f angle:-5];
    CCRotateBy *rotTouchEnd = [CCRotateBy actionWithDuration:1.0f angle:20];

    -(void)ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
      {
         [player stopAllActions];             
         [player rotTouchBegin];
      }

    -(void)ccTouchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{
         [player stopAllActions];
         [player rotTouchEnd];
}

如果你不想停止播放器上运行的所有动作,那么只需标记你的动作,以便使用
[player stopAction:[player getActionByTag:]

玩家是什么类型的对象?