//CCRotateBy
id action=[CCRotateBy actionWithDuration:1.0 angle:45];
[player runAction:action];
//CCRotateTo
id action=[CCRotateTo actionWithDuration:1.0 angle:45];
[player runAction:action];
以上两个代码产生相同的结果......我需要知道使用rotateTo和rotateBy之间的区别... 请指教......
答案 0 :(得分:14)
CCRotateTo将对象旋转到指定的角度,而CCRotateBy将对象旋转到当前角度+指定的角度。如果对象的初始旋转为0,它们将是等效的。但是,如果它的初始角度为90°,CCRotateTo会将其旋转到角度45,而CCRotateBy会将其旋转到角度135.
答案 1 :(得分:2)
CCRotateBy在旋转精灵方面也非常方便:
CCSprite *halo = [CCSprite spriteWithFile:@"halo.png"];
[halo setOpacity:160];
CCRotateTo * rotRight = [CCRotateBy actionWithDuration:0.5 angle:40.0];
[halo runAction:[CCRepeatForever actionWithAction:rotRight]];
使用CCRotateBy动作,你永远不需要考虑任何角度......