• [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
  • 相关阅读:
    将"089,0760,009"变为 89,760,9
    单向循环链表
    双链表复习
    【C语言】scanf()输入浮点型数据
    【C语言】一元二次方程(求实根和虚根)
    输入一个三位正整数,输出百位数,十位数,个位数
    输入身份证号,输出出生日期
    比较四个数的大小
    比较三个数的大小
    比较两个数的大小
  • 原文地址:https://www.cnblogs.com/hellenism/p/3472753.html
Copyright © 2020-2023  润新知