首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CCSprite高效动画

CCSprite高效动画
EN

Stack Overflow用户
提问于 2011-07-19 09:48:09
回答 1查看 737关注 0票数 0

我正在动画3个图像(精灵)从屏幕外的权利到屏幕的中间。我已经写了下面的代码,但我想知道是否有更有效的编码方法。

代码语言:javascript
复制
-(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];

}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-07-19 21:01:12

您应该能够将所有操作压缩到一行中。第一个文件最终将如下所示:

[menuItemBottle运行操作:CCMoveTo actionWithDuration:0.7f位置:ccp(screenSize.width* 0.5f + 50,600.0f)];

如果你更喜欢定义动作之外的位置,那么你可以继续这样做。仅供参考,当你想要在同一对象上连续运行动作时(例如,移动动作运行,当它完成时,旋转动作运行),CCSequence就是这样的。

另外,我不认为你需要为每个图像设置比例为1,因为我认为它已经设置为1。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6741445

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档