我正在动画3个图像(精灵)从屏幕外的权利到屏幕的中间。我已经写了下面的代码,但我想知道是否有更有效的编码方法。
-(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];
}发布于 2011-07-19 21:01:12
您应该能够将所有操作压缩到一行中。第一个文件最终将如下所示:
[menuItemBottle运行操作:CCMoveTo actionWithDuration:0.7f位置:ccp(screenSize.width* 0.5f + 50,600.0f)];
如果你更喜欢定义动作之外的位置,那么你可以继续这样做。仅供参考,当你想要在同一对象上连续运行动作时(例如,移动动作运行,当它完成时,旋转动作运行),CCSequence就是这样的。
另外,我不认为你需要为每个图像设置比例为1,因为我认为它已经设置为1。
https://stackoverflow.com/questions/6741445
复制相似问题