2010-03-20 44 views
1

如果我尝试对menuItem执行操作,但操作未按预期运行。Cocos2D:旋转CCMenu的问题

我认为下面的代码应该使menuItem旋转90度,但是当我运行它时,menuItem从它的坐标转换到另一个坐标,然后返回到它的原始坐标。完整的翻译需要3秒钟。

我需要的是menuItem在3秒的持续时间内旋转90度。请解释我做错了什么地方?

CCMenuItemImage *targetE;//Globally declared 
CCMenu *menu;//Globally declared 

-(id)init 
{ 
    if((self = [super init])) 
    { 
     isTouchEnabled = YES; 
     CGSize windowSize = [[CCDirector sharedDirector] winSize]; 
     targetE = [CCMenuItemImage itemFromNormalImage:@"grossinis_sister1.png"  selectedImage:@"grossinis_sister1.png" target:self selector:@selector(touch:)]; 

     menu = [CCMenu menuWithItems:targetE,nil]; 
     id action4 = [CCRotateBy actionWithDuration:3.0 angle:90]; 
     [menu runAction: [CCSequence actions: action4, nil]]; 
     menu.position = ccp(windowSize.width/2 + 200, windowSize.height/2); 
     [self addChild: menu z:10]; 
    } 
    return self; 
} 
@end 

谢谢。

+0

你有没有成功地做到这一点?这里同样的问题,CCMenu似乎奇怪旋转。 – rraallvv 2014-03-15 19:29:42

回答

4

如果要旋转一个菜单项(如在你的例子)刚刚运行CCMenuItem CCRotateBy行动:

[targetE runAction:action4];

如果你想,然后旋转其所有菜单项的整个菜单你必须考虑它的contentSize,anchorPoint和position。在你的情况下,最简单的旋转菜单的方法是将contentSize设置为零。

menu.contentSize = CGSizeZero;