关于cocos2d-x随机数获取方法问题一直很纠结,
自带的CCRANDOM_0_1由于未加入随机种子,得到的不是真正的随机数,之前一直使用,直到被公司测试发现通过CCRANDOM_0_1获得的随机数在每次重新启动游戏之后得到的数都一样。,查看CCRANDOM_0_1的源码的实现是这样的:
#define CCRANDOM_0_1() ((float)rand()/RAND_MAX)
通过定义宏的方式 ,使用C语言的rand()函数去获得随机数。但是,并没有添加随机种子,所以造成了不能获得。下面我们举一个栗子来证明一下:
//循环10次
for (int i = 0; i < 10; i++) {
//只使用rand()函数,不添加随机种子
int a = rand()%10;
//打印
printf("a = %d \n",a);
}
得到如下结果: