2012-02-12 25 views

回答

1

只需创建多个小精灵(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); 
0

您不能添加相同CCSprite作为一个孩子到多个CCNodes但你可以做的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的附加副本时为此类的实例添加一个addChild。

0

将方法放在for循环上。

在该方法内部创建CCSprite并对其进行修改。

这是最适合静态精灵,因为我不知道如何访问这些方法之外。