如果我尝试对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
谢谢。
答案 0 :(得分:4)
如果要旋转单个菜单项(如示例所示),只需在CCMenuItem上运行CCRotateBy操作:
[targetE runAction:action4];
如果要旋转整个菜单及其所有菜单项,则必须考虑其contentSize,anchorPoint和position。在您的情况下,最简单的旋转菜单的方法是将其contentSize设置为零。
menu.contentSize = CGSizeZero;