博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[Cocos2d-x]随机数
阅读量:6923 次
发布时间:2019-06-27

本文共 728 字,大约阅读时间需要 2 分钟。

Cocos2d-x为我们提供了生成随机数的宏:CCRANDOM_0_1()

具体定义如下:

/** @def CCRANDOM_0_1 returns a random float between 0 and 1 */#define CCRANDOM_0_1() ((float)rand()/RAND_MAX)

但是发现它并不能满足我们的需求,一般情况下,我们都会需要其他范围的随机数,还是用最通用得方法比较适合

rand() % MAX

 

Ex:

获取0~100之间的整数:

int random = rand() % 100;

 

问题在于,每次启动程序,第一次获取到得数都是一样的。

需要设置生成随机数的种子:

srand((unsigned)time(NULL));//使用当前时间作为随机数生成时的种子

在运行程序,每次获取的值都不一样了。妥

 

在schedule中获取随机数:

问题简述:

如果不设置种子,每次重新启动游戏,每一次loop时获取到得随机数跟上次启动游戏都是一样的。

所以,如果需要在schedule中获取随机数,也需要设置种子。

 

个人认为:

如果程序中需要用到随机数,那么就在程序启动时候统一设置种子,这样在之后就可直接调用rand()获取随机数了

 

bool AppDelegate::applicationDidFinishLaunching(){     ....default code....         //add  by Stephen Lee     srand((unsigned)time(NULL));}

 

 

转载于:https://www.cnblogs.com/hellenism/p/3472753.html

你可能感兴趣的文章
HTMLDocument和XMLDocument 的children
查看>>
线性判别分析(LDA)算法总结
查看>>
LINUX/CENTOS 修改mysql的root用户密码
查看>>
linux/centos 搭建本地yum服务器
查看>>
RH436 UNIT 1 CLUSTERS AND STORAGE
查看>>
CentOS 6.5 启动级别
查看>>
SQLite中的SELECT子句使用表达式
查看>>
Android动画曲线库AndroidEasingFunctions
查看>>
判断回文数、回文字符串(从左边读和从右边读一样)
查看>>
Java的SimpleDateFormat类
查看>>
Oracle系列:(33)JDBC访问Oracle的存储过程和存储函数
查看>>
企业实战(3)-主从实现基于Keepalived高可用集群网站架构
查看>>
一键安装lamp脚本--进阶版
查看>>
ngnix安装与配置
查看>>
maven 管理项目实践指南
查看>>
jqeury数据缓存之data()解析
查看>>
我的友情链接
查看>>
分组计算描述性统计量
查看>>
redhat安装ibm,rdac多路径的奇葩经历
查看>>
【Python之旅】第三篇(二):Pickle序列化
查看>>