Iphone CCSprite高效动画
我正在制作3个图像(精灵)的动画,从屏幕外到屏幕中间的右侧。我已经写了下面的代码,但是我想知道是否有更有效的编码方法Iphone CCSprite高效动画,iphone,objective-c,cocos2d-iphone,Iphone,Objective C,Cocos2d Iphone,我正在制作3个图像(精灵)的动画,从屏幕外到屏幕中间的右侧。我已经写了下面的代码,但是我想知道是否有更有效的编码方法 -(void) displayMenu { CGSize screenSize = [[CCDirector sharedDirector] winSizeInPixels]; CCSprite* menuItemBottle = [CCSprite spriteWithFile:@"btn_i_have_norm.png"]; menuItemBott
-(void) displayMenu
{
CGSize screenSize = [[CCDirector sharedDirector] winSizeInPixels];
CCSprite* menuItemBottle = [CCSprite spriteWithFile:@"btn_i_have_norm.png"];
menuItemBottle.position = ccp((screenSize.width * 2), 600.0f);
menuItemBottle.contentSize = screenSize;
menuItemBottle.scale = 1;
[self addChild:menuItemBottle z:0 tag:4];
CCSprite* menuItemAdvert = [CCSprite spriteWithFile:@"btn_see-ad_norm.png"];
menuItemAdvert.position = ccp((screenSize.width * 2), 500.0f);
menuItemAdvert.contentSize = screenSize;
menuItemAdvert.scale = 1;
[self addChild:menuItemAdvert z:0 tag:5];
CCSprite* menuItemNoBottle = [CCSprite spriteWithFile:@"btn_dont-have_norm.png"];
menuItemNoBottle.position = ccp((screenSize.width * 2), 400.0f);
menuItemNoBottle.contentSize = screenSize;
menuItemNoBottle.scale = 1;
[self addChild:menuItemNoBottle z:0 tag:6];
CGPoint newPointBottle = CGPointMake(screenSize.width * 0.5f + 50, 600.0f);
CCMoveTo *moveBottle = [CCMoveTo actionWithDuration:0.7f position:newPointBottle];
CCSequence *sequenceBottle = [CCSequence actions:moveBottle, nil];
[menuItemBottle runAction:sequenceBottle];
CGPoint newPointAdvert = CGPointMake(screenSize.width * 0.5f + 50, 500.0f);
CCMoveTo *moveAdvert = [CCMoveTo actionWithDuration:0.7f position:newPointAdvert];
CCSequence *sequenceAdvert = [CCSequence actions:moveAdvert, nil];
[menuItemAdvert runAction:sequenceAdvert];
CGPoint newPointNoBottle = CGPointMake(screenSize.width * 0.5f + 50, 400.0f);
CCMoveTo *moveNoBottle = [CCMoveTo actionWithDuration:0.7f position:newPointNoBottle];
CCSequence *sequenceNoBottle = [CCSequence actions:moveNoBottle, nil];
[menuItemNoBottle runAction:sequenceNoBottle];
}
您应该能够将所有操作简化为一行。第一个最终会是这样的: [MenuiteBottol运行动作:[CCMoveTo动作持续时间:0.7f位置:ccp(屏幕大小.宽度*0.5f+50600.0f)] 如果您希望在操作之外定义位置,那么您可以继续这样做。仅供参考,CCSequence用于连续运行同一对象上的动作(即,移动动作运行,旋转动作运行)
此外,我不认为您需要将每个图像的比例设置为1,因为我认为它已经设置为1 在更少的代码中高效还是在更快的运行中高效?更少的代码,如果运行得更快,那就太好了!