我目前正在研究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的位置-是左下角。