我目前正在研究cocos2d中有趣的示例。我有一个精灵,就是一条线,它只是在背景上移动(借助CCAction)。但是这条线是4000像素宽。 iOS 4.x最多支持2048 x 2048像素。因此,我决定将线分成两部分。所以,现在我有两个图像,1920 x1920。现在,我想做以前做的同样的事情。这是非常简单的代码:

CCSprite *abstractFigureLine = [CCSprite spriteWithFile:@"Abstract Figures Line.png"];
    abstractFigureLine.position = CGPointMake(960.0f, 160.0f);
    [self addChild:abstractFigureLine z:1];
    CCAction *moveAbstractFigureLineAction = [CCMoveTo actionWithDuration:10.0f position:CGPointMake(-900.0f, 160.0f)];
    [abstractFigureLine runAction:moveAbstractFigureLineAction];


现在,我需要插入另一个精灵的图像,而且非常简单,但是有什么方法可以将这两个精灵连接到一个精灵中吗?

最佳答案

为您的Sprite创建一个基本节点,将Sprite添加到此节点,并在此节点上运行操作:

CCSprite *abstractFigureLine1 = [CCSprite spriteWithFile:@"Abstract Figures Line.png"];
abstractFigureLine.position = CGPointMake(0, 0);

CGSize lineSize = [abstractFigureLine1 contensSize];
CCSprite *abstractFigureLine2 = [CCSprite spriteWithFile:@"Abstract Figures Line.png"];
abstractFigureLine.position = CGPointMake(lineSize.width, 0);

CCNode *base = [[CCNode alloc] init];
[base setPosition: CGPointMake(960.0f, 160.0f)];

[base addChild:abstractFigureLine1 z:1];
[base addChild:abstractFigureLine2 z:1];

[self addChild:base z:1];

CCAction *moveAbstractFigureLineAction = [CCMoveTo actionWithDuration:10.0f position:CGPointMake(-900.0f, 160.0f)];
[base runAction:moveAbstractFigureLineAction];


请注意,CCSprite的位置-是中心,而CCNode的位置-是左下角。

10-08 05:27