如何在多个位置拥有相同的精灵Cocos2d请帮忙 我已经搜遍过,找不到答案
答案 0 :(得分:1)
只需创建多个Sprite(CCSprite实例)。它们都可以使用相同的纹理(位图文件)。
CCSprite * mySprite1;
CCSprite * mySprite2;
CCSprite * mySprite3;
// create several sprites from the same bitmap file
mySprite1 = [CCSprite spriteWithFile:@"spriteBitmap.png"];
mySprite2 = [CCSprite spriteWithFile:@"spriteBitmap.png"];
mySprite3 = [CCSprite spriteWithFile:@"spriteBitmap.png"];
mySprite1.position = ccp(100, 100);
mySprite2.position = ccp(200, 200);
mySprite3.position = ccp(300, 300);
答案 1 :(得分:0)
您不能将同一个CCSprite作为子节点添加到多个CCNode,但您可以使Cocos2D多次渲染相同的CCSprite。 要实现这一点,您需要创建一个CCNode子类,它将存储对CCSprite的引用,并在其-draw方法中应用所需的转换来绘制它。 例如
-(void)draw
{
[super draw];
CGPoint initialPosition = [_node position];
float initialScale = [_node scale];
[_node setScale:self.scale];
[_node setPosition:self.position];
[_node visit];
[_node setPosition:initialPosition];
[_node setScale:initialScale];
}
如果您需要画中画外观,可能必须使用glScissor。
然后,您只需要在每次想要渲染原始CCSprite的其他副本时添加此类的实例。
答案 2 :(得分:0)
在for循环上放置一个方法。
在方法内部创建CCSprite并对其进行修改。
这最适合静态精灵,因为我不知道如何在方法之外访问这些精灵。