2014-03-28 109 views
0

我有4個精靈,每次遊戲開始時它都會隨機從4個精靈中選擇1個作爲主精靈。選擇隨機精靈Cocos2d 3.0

我該怎麼做?

我知道我需要使用arc4random

+0

這個問題不符合該平臺的標準。請先嚐試自行找到解決方案。如果您對帖子的詳細信息停留在迄今爲止已嘗試的內容中, –

+0

如果以下任何答案適用於您,請您接受相同的答案。 – SaffronState

回答

0

首先,你是在NSMutableArray添加所有精靈如下面的代碼。

分配陣列

NSMutableArray *AryT = [[NSMutableArray alloc]init]; 

不同的充精靈

CCSprite *torpedoOne1 = [CCSprite spriteWithFile:@"[email protected]"]; 

CCSprite *torpedoOne2 = [CCSprite spriteWithFile:@"[email protected]"]; 

CCSprite *torpedoOne3 = [CCSprite spriteWithFile:@"[email protected]"]; 

全部添加這精靈在定義數組

[AryT addObject:torpedoOne1]; 

[AryT addObject:torpedoOne2]; 

[AryT addObject:torpedoOne3]; 

採取隨機數從數組

int RandomIndex = arc4random_uniform(AryT.count); 

Randomaly精靈

[self addchild:[AryT objectAtIndesx:RandomIndex]]; 
+0

請注意,在此實現中,您正在加載所有精靈的紋理數據。如果OP只想使用一個進行長時間會話,則會導致內存浪費。我建議只在數組中存儲文件**名稱**,當你選擇一個時,你加載相應的精靈。 – Voldemort

1

最簡單的方法是 - 名你圖片(.png)文件的一些號碼,例如sprite1.png,sprite2.png ....

int rndSprtNum = (arc4random() % 4) + 1;   
    CCSPrite *mainSprite = [CCSprite spriteWithFile:[NSString StringWithFormat:@"sprite%d.png",rndSprtNum]]; 
    mainSprite.position = ccp(x,y); 
    [self addChild:mainSprite]; 

這樣,你不需要採取一個可變數組等。希望這會有所幫助。

0

這裏的另一種方法,如果你不想重命名文件,你可以簡單地把自己的名字的數組:

NSString *names[4] = {@"RedSprite.png", @"GreenSprite.png", @"YellowSprite.png", @"PurpleSprite.png"}; 

CCSprite *sprite = [CCSprite spriteWithFile:names[arc4random_uniform(4)]]; 

[self addChild:sprite];