• [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));
    }
    

     

    人生就是一局不能Again的DOTA
  • 相关阅读:
    MFC的DoModal(转)
    MFC程序执行过程剖析(转)
    中控面试记录
    从内核文件系统看文件读写过程(转)
    dbutils工具
    java中求利息的代码
    java中求输入一个数,并计算其平方根~~~
    java中length的用法
    java中关于length的真确理解~~~~有补充的请跟帖~~~
    java二维数组的长度
  • 原文地址:https://www.cnblogs.com/hellenism/p/3472753.html
Copyright © 2020-2023  润新知