实现真正随机数

cocos2d-x里使用 CCRANDOM_0_1 可以产生随机的0和1,但是其实如果仅仅使用这个宏是不可以达到真正随机的效果,还需要为随机数设置“种子”

经过修改后,使用以下函数可以产生[s,e]之间的随机数

int Common::random(int s,int e){
    cc_timeval psv;
    CCTime::gettimeofdayCocos2d( &psv, NULL );    // 获取本地时间
    //根据时间产生随机种子
    unsigned int tsrans = psv.tv_sec * 1000 + psv.tv_usec / 1000;
    srand(tsrans);    //设定随机数种子
	float i = CCRANDOM_0_1()*(e-s+1)+s;
	return (int)i;
}


你可能感兴趣的:(cocos2d-x)