[Cocos2d-x]随机数
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));
}
[Cocos2d-x]随机数的更多相关文章
- Cocos2D的随机数生成函数
有很多种方法生成随机数.但是只有arc4random函数生成的最接近于"真随机(truly random)"数.(而且不需要种子) 其变体函数arc4random_uniform生 ...
- Cocos2d入门--3--向量的应用
*:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !important; } ...
- objective-c 中随机数的用法 3种:arc4random() 、random()、CCRANDOM_0_1()
oc 中随机数的用法(arc4random() .random().CCRANDOM_0_1() 1).arc4random() 比较精确不需要生成随即种子 使用方法 : 通过arc4random() ...
- oc 中随机数的用法(arc4random( ) 、random( )、CCRANDOM_0_1( )
来源:http://www.cnblogs.com/jay-dong/archive/2012/07/23/2604916.html 1).arc4random() 比较精确不需要生成随即种子 使用方 ...
- iOS随机数-备
ios 有如下三种随机数方法: 1. srand((unsigned)time(0)); //不加这句每次产生的随机数不变 int i = rand() % 5; 2. s ...
- objective-c 中随机数的用法 (3种:arc4random() 、random()、CCRANDOM_0_1() )
1.随机数的使用 1).arc4random() 比较精确不需要生成随即种子 使用方法 : 通过arc4random() 获取0到x-1之间的整数的代码如下: int value = arc ...
- cocos2d学习笔录1
CCDirector的主要作用: 1.访问和改变场景: 2.访问cocos2d-x的配置细节 3.访问视图(OPENGL,UIVIEW,UIWINDOW): 4.暂停,恢复和结束游戏: 5.在UIKi ...
- cocos2d-x 3.x随机数
1.使用标准库std::rand()函数 rand();//产生0~RAND_MAX(0x7fff=32767)间的int类型随机数 rand()%;//产生0~5间的int类型随机数,不包括5 2. ...
- iOS-objective-c产生随机数的方法
objective-c 中三种产生随机数的方法 //arc4random() 比较精确不需要生成随即种子 //通过arc4random() 获取0到x-1之间的整数的代码如下: int val ...
- .Net使用system.Security.Cryptography.RNGCryptoServiceProvider类与System.Random类生成随机数
.Net中我们通常使用Random类生成随机数,在一些场景下,我却发现Random生成的随机数并不可靠,在下面的例子中我们通过循环随机生成10个随机数: ; i < ; i++) { Rando ...
随机推荐
- 【linux kernel】 中断处理-中断下半部
欢迎转载,转载时需保留作者信息,谢谢. 邮箱:tangzhongp@163.com 博客园地址:http://www.cnblogs.com/embedded-tzp Csdn博客地址:http:// ...
- Ch03 视图基础
3.1 视图简介 3.1.1 选择待渲染视图 3.1.2 重写视图名 3.2 给视图传递数据 3.2.1 ViewDataDictionary 3.2.2 ViewBag 3.2.3 带 ...
- <?php echo "我的第一段 PHP 脚本!"; ?>
<!DOCTYPE html><html><body> <?phpecho "我的第一段 PHP 脚本!";?> </body ...
- 基于visual Studio2013解决面试题之1207堆排序
题目
- 用户界面线程AfxBeginThread的使用
用户界面线程在运行时会有一个窗口界面和与其相对应的窗口函数,所以它可以通过响应消息来和用户进行交互. AfxBeginThread 函数原型如下: CWinThread *AfxBeginThread ...
- 一个Sqrt谋杀触发功能
我们平时常常会有一些数据运算的操作,须要调用sqrt,exp,abs等函数,那么时候你有没有想过:这个些函数系统是怎样实现的?就拿最常常使用的sqrt函数来说吧.系统怎么来实现这个常常调用的函数呢? ...
- 试解析Tomcat运行原理(一)--- socket通讯(转)
关于这篇文章也确实筹划了很久,今天决定开篇写第一篇,说起tomcat首先很容易联想到IIS,因为我最开始使用的就是.net技术,我第一次使用asp写学生成绩管理系统后,很茫然如何让别人都能看到或者说使 ...
- uvc摄像头代码解析5
8.初始化uvc控制 8.1 重要结构体 struct uvc_control { //uvc控制 struct uvc_entity *entity; //uvc实体 struct uvc_cont ...
- zoj1028-Flip and Shift
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=28 题意:有相互交叉的黑白两种颜色的小球,每一个小球每次可以跳两格:问你是否可以 ...
- Duanxx的C++学习: 使用类没有被定义 原因及解决方法
今天,随着C++写的神经网络算法.我发现了一个很令人费解的问题,下面的描述一般地描述,例如: 我有两个类ClassA和ClassB,它们分别有成员变量a.b; ClassA有一个函数是这种:Funct ...