cocos2dx中随机数生成的各种方法比较

测试代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#define RANGE 200
//1.
//随机效果一般,每次进入游戏的时候,值都是一样的
float randData = CCRANDOM_0_1() * RANGE;
CCLOG("1st------------->%f", randData);

//2.
//随机效果不好,虽然每次进入游戏,值都不一样,但是生成的随机数是递增的,而且相邻两个数之间的变化不大
srand(unsigned(time(NULL)));
randData = rand() % RANGE;
CCLOG("2rd------------->%f", randData);

//3.
//随机效果较好,每次进入游戏的值都不一样,生成的随机数无规律,相邻的两个数变化较大
timeval tv;
cocos2d::gettimeofday(&tv, NULL);
unsigned long int seed = tv.tv_sec * 1000 + tv.tv_usec / 1000;
srand(seed);
randData = rand() % RANGE;
CCLOG("3nd------------->%f", randData);

//4.
//C++11的特性,要包含头文件<random>,随机效果不错
std::uniform_real_distribution<double> u(0, RANGE);
std::default_random_engine e(rand());
for (int i = 0; i < 5; i++){
CCLOG("4th------------->%f", u(e));
}
文章不错,你都不请我喝杯茶,就是说你呀!