2012-02-12 7 views
1

は、私はすべての上で検索しましたし、ただ、複数のスプライト(CCSpriteインスタンス)を作成Cocos2d

答えて

1

に答える見つけることができません を助けてください。それらはすべて同じテクスチャ(ビットマップファイル)を使用できます。

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

あなたは、複数のCCNodesの子と同じCCSpriteを追加することはできませんが、Cocos2Dは同じCCSprite複数回レンダリングすることができます。 これを達成するには、CCSpriteへの参照を格納するCCNodeのサブクラスを作成し、必要な変換を適用してその-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を作成して修正します。

これは、メソッドの外部にどのようにアクセスするのかわからないため、静的スプライトに最適です。