我们在工作中有时会需要用Cocos2d-x来获取大量随机数,要怎么操作呢?本篇教程教你如何用Cocos2D-X获取大量随机数。
之前在做一个游戏的时候需要获取随机数
rand()%(end-start+1)+start;
参数end和start是为了设置获取随机数范围的,要想获取接近真实的随机数需要设置一个种子,比较常用的方法是以当前时间为种子,在cocos2d-x中提供了获取时间的方法,而且获取的时间更精确
cc_timeval psv;
CCTime::gettimeofdayCocos2d(&psv, NULL);
unsigned long int seed = psv.tv_sec*1000 + psv.tv_usec/1000;
得到的时间能精确到毫秒级。
项目的需求是要获取一组随机数,这就要用一个循环来获取大量的随机数了,一开始是这样做的:
调试的时候发现,得到的随机数很有规律......
当时感觉很奇怪,在网上查了好长时间,也没找到什么问题(可能是没仔细看教程,哈哈)。后来突然感觉,是不是应该把设置种子放到循环外面,然后源码改动如下:
然后调试,成功。
所以,设置种子的位置要放的循环外面.....
¥98.00
¥108.00
¥98.00
¥698.00