我有4个精灵,每次游戏开始时它会从4个精灵中随机选择1作为主精灵。
我该怎么做?
我知道我需要使用arc4random
答案 0 :(得分: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];
这样你就不需要采用可变阵列等希望这会有所帮助。
答案 1 :(得分:0)
首先,您要在NSMutableArray
中添加所有精灵,如下面的代码。
分配数组
NSMutableArray *AryT = [[NSMutableArray alloc]init];
不同的精灵
CCSprite *torpedoOne1 = [CCSprite spriteWithFile:@"A@2x.png"];
CCSprite *torpedoOne2 = [CCSprite spriteWithFile:@"B@2x.png"];
CCSprite *torpedoOne3 = [CCSprite spriteWithFile:@"C@2x.png"];
在定义数组
中添加所有此精灵[AryT addObject:torpedoOne1];
[AryT addObject:torpedoOne2];
[AryT addObject:torpedoOne3];
从数组中取随机数
int RandomIndex = arc4random_uniform(AryT.count);
Randomaly sprite
[self addchild:[AryT objectAtIndesx:RandomIndex]];
答案 2 :(得分:0)
这是另一种方法,如果您不想重命名文件,只需将其名称放在数组中即可:
NSString *names[4] = {@"RedSprite.png", @"GreenSprite.png", @"YellowSprite.png", @"PurpleSprite.png"};
CCSprite *sprite = [CCSprite spriteWithFile:names[arc4random_uniform(4)]];
[self addChild:sprite];