CCRandom_0_1()生成相同的数字

时间:2011-05-28 07:06:09

标签: iphone ios random cocos2d-iphone

我使用CCRandom_0_1()生成随机数,如“learn-iphone-and-ipad-with-cocos2d”一书中所述 但似乎该函数生成相同的数字。

    int ran1 = ((int) (CCRANDOM_0_1() * 5)) + 1;
    int ran2 = ran1;
    while (ran2 == ran1) {
        ran2 = ((int) (CCRANDOM_0_1() * 5)) + 1;
    }

这里是我想生成1到5的2个不同整数的代码,但控制台总是

2011-05-28 14:57:56.699 LetsSpotIt[2443:707] r1: 4.200939 r1: 1.971915

无论如何我可以根据时间播种它(迷你秒),还是有其他功能可以使用?

请给我示例代码。我之前没有学过c或c ++。谢谢。

2 个答案:

答案 0 :(得分:6)

如果每次使用代码时都需要不同的值,则必须为随机生成器设定种子。最流行的方法是在使用CCRANDOM之前调用srandom(time(NULL))

答案 1 :(得分:4)

您是否尝试过arc4random()函数?另请查看here