教你如何用Cocos2D-X获取大量随机数

    作者:课课家教育更新于: 2019-04-17 10:06:53

      我们在工作中有时会需要用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;

      得到的时间能精确到毫秒级。

      项目的需求是要获取一组随机数,这就要用一个循环来获取大量的随机数了,一开始是这样做的:

    教你如何用Cocos2D-X获取大量随机数_Cocos2D-X随机数_Cocos2D-X教程_Cocos2D-X技巧_课课家  

      调试的时候发现,得到的随机数很有规律......

      当时感觉很奇怪,在网上查了好长时间,也没找到什么问题(可能是没仔细看教程,哈哈)。后来突然感觉,是不是应该把设置种子放到循环外面,然后源码改动如下:

      

      然后调试,成功。

      所以,设置种子的位置要放的循环外面.....

课课家教育

未登录