2012-02-12 55 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並對其進行修改。

這是最適合靜態精靈,因爲我不知道如何訪問這些方法之外。