Cocos2d-2.x_使用系统时间来获取随机数

前端之家收集整理的这篇文章主要介绍了Cocos2d-2.x_使用系统时间来获取随机数前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
#ifndef __HELLO_WORLD_H__
#define __HELLO_WORLD_H__

#include "cocos2d.h"
#include "cocos-ext.h"

USING_NS_CC;
USING_NS_CC_EXT;

class HelloWorld : public cocos2d::CCLayer 
{
public:
	HelloWorld();
    virtual ~HelloWorld();
    
    static cocos2d::CCScene* scene();

	virtual bool init();

	CREATE_FUNC(HelloWorld);

};

#endif
#include "HelloWorldScene.h"
#include "SimpleAudioEngine.h"


HelloWorld::HelloWorld()
{
}

HelloWorld::~HelloWorld()
{

}

CCScene* HelloWorld::scene()
{
	CCScene *scene = CCScene::create();
	HelloWorld *layer = HelloWorld::create();
	scene->addChild(layer);

	return scene;
}

bool HelloWorld::init()
{
	if (!CCLayer::init())
	{
		return false;
	}
	
	//获取系统时间
	//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);
	//如果要获得a~b之间的一个随机数,则应该是CCRANDOM_0_1*(b-a)+a,传入的参数就是a和b
	int randomValue = CCRANDOM_0_1()*(10-0)+0;
	CCLog("random = %d",randomValue);

	return true;
}
原文链接:https://www.f2er.com/cocos2dx/343176.html

猜你在找的Cocos2d-x相关文章