Cocos2D:旋转CCMenu的问题

时间:2010-03-20 12:51:11

标签: iphone cocoa-touch cocos2d-iphone

如果我尝试对menuItems执行操作,但操作未按预期运行。

我认为下面的代码应该使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

谢谢。

1 个答案:

答案 0 :(得分:4)

如果要旋转单个菜单项(如示例所示),只需在CCMenuItem上运行CCRotateBy操作:

[targetE runAction:action4];

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

menu.contentSize = CGSizeZero;