首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >未调用数组中的Cocos2d随机对象

未调用数组中的Cocos2d随机对象
EN

Stack Overflow用户
提问于 2012-12-26 00:44:57
回答 1查看 579关注 0票数 0

我已经创建了一个数组,它根据用户点击的内容存储红色、黄色或绿色(3、2或1)。我希望代码在数组中选择一个随机数,并在屏幕上显示相应的颜色。但是,当代码运行时,程序始终选择最后输入的颜色,并且只显示该颜色。代码:

代码语言:javascript
复制
-(void)CreateEnemy:(ccTime)dt{
CCSprite *Enemy;
int a;
if (colorArray != nil) {
    a = arc4random()% [colorArray count];
}
int y = [[colorArray objectAtIndex:a] integerValue];
if (y == 1) {
    Enemy = [CCSprite spriteWithFile:@"GreenBall.png"];
    int x = arc4random()%320;
    Enemy.position = ccp(x, 530);
    id action = [CCMoveTo actionWithDuration:3 position:ccp(x, -30)];
    [Enemy runAction:[CCSequence actions:action, [CCCallFuncN actionWithTarget:self selector:@selector(spriteMoveFinished:)], nil]];
    [enemyArray addObject:Enemy];
    [self addChild:Enemy z:2 tag:1];
    NSLog(@"Green Enemy Attack!!");
}
else if (y == 2) {
    Enemy = [CCSprite spriteWithFile:@"YellowBall.png"];
    int x = arc4random()%320;
    Enemy.position = ccp(x, 530);
    id action = [CCMoveTo actionWithDuration:3 position:ccp(x, -30)];
    [Enemy runAction:[CCSequence actions:action, [CCCallFuncN actionWithTarget:self selector:@selector(spriteMoveFinished:)], nil]];
    [enemyArray addObject:Enemy];
    [self addChild:Enemy z:2 tag:1];
    NSLog(@"Yellow Enemy Attack!!");
}
else if (y == 3) {
    Enemy = [CCSprite spriteWithFile:@"RedBall.png"];
    int x = arc4random()%320;
    Enemy.position = ccp(x, 530);
    id action = [CCMoveTo actionWithDuration:3 position:ccp(x, -30)];
    [Enemy runAction:[CCSequence actions:action, [CCCallFuncN actionWithTarget:self selector:@selector(spriteMoveFinished:)], nil]];
    [enemyArray addObject:Enemy];
    [self addChild:Enemy z:2 tag:1];
    NSLog(@"Red Enemy Attack!!");
}
}

Y应该是随机选择的颜色,但它从来都不是。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-26 01:39:15

在:

代码语言:javascript
复制
if (colorArray != nil) {
   a = arc4random()% [colorArray count];
}
int y = [[colorArray objectAtIndex:a] integerValue];

最有可能发生的情况是,[colorArray count]没有您期望的值,因此arc4random只返回0(或一组有限的值)。

如果恰好在计算a的值之前添加NSLog跟踪,则可以评估[colorArray count]的值。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14032402

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档