Cocos2d-x中获取系统时间和随机数实例

所属分类: 软件编程 / C 语言 阅读数: 81
收藏 0 赞 0 分享

随机数是我们在程序中经常要用到的,cocos2d-x用CCRANDOM_0_1产生随机数,但我们最后给它传入一个随机数种子,这样产生的随机数才是真正的随机数,而这个种子就是我们一般使用的时间。下面通过代码看看我们如何实现。

bool HelloWorld::init()
{
  bool bRet = false;
  do
  {

    CC_BREAK_IF(! CCLayer::init());
		//获取系统时间
		//time_t是long类型,精确到秒,通过time()函数可以获得当前时间和1970年1月1日零点时间的差
		time_t tt;
		time(&tt);
		struct tm * now;
		//获得本地时间
		now = localtime(&tt);
		CCLog("%d/%d/%d %d:%d:%d",now->tm_year+1900,now->tm_mon+1,
			now->tm_mday,now->tm_hour,now->tm_min,now->tm_sec);

		//产生随机数
		//CCRANDOM_0_1()获取一个0-1之间的float类型数,包括0和1
		//通过CCRANDOM_0_1()获得的随机数其实并不是随机的,要想获取接近真实的随机数需要设置一个种子
		//比较常用的方法是以当前时间为种子,在cocos2d-x中提供了获取时间的方法,而且获取的时间更精确
		//cc_timeval是个结构体,里边有俩个变量,一个是以秒为单位的,一个是以微妙为单位的
		cc_timeval tv;
		CCTime::gettimeofdayCocos2d(&tv,NULL);
		//都转化为毫秒
		unsigned long reed = tv.tv_sec*1000+tv.tv_usec/1000;
		//srand()中传入一个随机数种子
		srand(reed);

		this->schedule(schedule_selector(HelloWorld::random),1.0);

    bRet = true;
  } while (0);

  return bRet;
}

//如果要获得a~b之间的一个随机数,则应该是CCRANDOM_0_1*(b-a)+a,传入的参数就是a和b
int HelloWorld::getRandomNumber(int start,int end)
{
	return CCRANDOM_0_1()*(end-start)+start;
}

void HelloWorld::random(float tm)
{
	int random = this->getRandomNumber(0,10);
	CCLog("random = %d",random);
}
更多精彩内容其他人还在看

C++中四种对象生存期和作用域以及static的用法总结分析

以下是对C++中四种对象生存期和作用域以及static的用法进行了详细的介绍,需要的朋友可以过来参考下
收藏 0 赞 0 分享

C++嵌套类与局部类详细解析

从作用域的角度看,嵌套类被隐藏在外围类之中,该类名只能在外围类中使用。如果在外围类之外的作用域使用该类名时,需要加名字限定
收藏 0 赞 0 分享

C++空类详解

以下是对C++中的空类进行了详细的介绍,需要的朋友可以过来参考下
收藏 0 赞 0 分享

C++之友元:友元函数和友元类详解

友元是一种允许非类成员函数访问类的非公有成员的一种机制。可以把一个函数指定为类的友元,也可以把整个类指定为另一个类的友元
收藏 0 赞 0 分享

C++中返回指向函数的指针示例

int (*ff(int)) (int *,int);表示:ff(int)是一个函数,带有一个int型的形参,该函数返回int (*) (int *,int),它是一个指向函数的指针,所指向的函数返回int型并带有两个分别是Int*和int型的形参
收藏 0 赞 0 分享

C数据结构之单链表详细示例分析

以下是对C语言中的单链表进行了详细的分析介绍,需要的朋友可以过来参考下
收藏 0 赞 0 分享

C数据结构之双链表详细示例分析

以下是对c语言中的双链表进行了详细的分析介绍,需要的朋友可以过来参考下
收藏 0 赞 0 分享

浅析如何在c语言中调用Linux脚本

如何在c语言中调用Linux脚本呢?下面小编就为大家详细的介绍一下吧!需要的朋友可以过来参考下
收藏 0 赞 0 分享

深入解析unsigned int 和 int

以下是对unsigned int和int进行了详细的分析介绍,需要的朋友可以过来参考下
收藏 0 赞 0 分享

浅谈C++中的string 类型占几个字节

本篇文章小编并不是为大家讲解string类型的用法,而是讲解我个人比较好奇的问题,就是string 类型占几个字节
收藏 0 赞 0 分享
查看更多