Cocos2d-x中獲取系統(tǒng)時(shí)間和隨機(jī)數(shù)實(shí)例
隨機(jī)數(shù)是我們?cè)诔绦蛑薪?jīng)常要用到的,cocos2d-x用CCRANDOM_0_1產(chǎn)生隨機(jī)數(shù),但我們最后給它傳入一個(gè)隨機(jī)數(shù)種子,這樣產(chǎn)生的隨機(jī)數(shù)才是真正的隨機(jī)數(shù),而這個(gè)種子就是我們一般使用的時(shí)間。下面通過(guò)代碼看看我們?nèi)绾螌?shí)現(xiàn)。

bool HelloWorld::init()
{
bool bRet = false;
do
{
CC_BREAK_IF(! CCLayer::init());
//獲取系統(tǒng)時(shí)間
//time_t是long類型,精確到秒,通過(guò)time()函數(shù)可以獲得當(dāng)前時(shí)間和1970年1月1日零點(diǎn)時(shí)間的差
time_t tt;
time(&tt);
struct tm * now;
//獲得本地時(shí)間
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);
//產(chǎn)生隨機(jī)數(shù)
//CCRANDOM_0_1()獲取一個(gè)0-1之間的float類型數(shù),包括0和1
//通過(guò)CCRANDOM_0_1()獲得的隨機(jī)數(shù)其實(shí)并不是隨機(jī)的,要想獲取接近真實(shí)的隨機(jī)數(shù)需要設(shè)置一個(gè)種子
//比較常用的方法是以當(dāng)前時(shí)間為種子,在cocos2d-x中提供了獲取時(shí)間的方法,而且獲取的時(shí)間更精確
//cc_timeval是個(gè)結(jié)構(gòu)體,里邊有倆個(gè)變量,一個(gè)是以秒為單位的,一個(gè)是以微妙為單位的
cc_timeval tv;
CCTime::gettimeofdayCocos2d(&tv,NULL);
//都轉(zhuǎn)化為毫秒
unsigned long reed = tv.tv_sec*1000+tv.tv_usec/1000;
//srand()中傳入一個(gè)隨機(jī)數(shù)種子
srand(reed);
this->schedule(schedule_selector(HelloWorld::random),1.0);
bRet = true;
} while (0);
return bRet;
}
//如果要獲得a~b之間的一個(gè)隨機(jī)數(shù),則應(yīng)該是CCRANDOM_0_1*(b-a)+a,傳入的參數(shù)就是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);
}
- Cocos2d-x保存用戶游戲數(shù)據(jù)CCUserDefault類使用實(shí)例
- Cocos2d-x中背景音樂(lè)和音效使用實(shí)例
- Cocos2d-x觸摸事件實(shí)例
- Cocos2d-x人物動(dòng)作類實(shí)例
- php中Swoole的熱更新實(shí)現(xiàn)代碼實(shí)例
- React Native 實(shí)現(xiàn)熱更新并自動(dòng)簽名打包功能
- nodemon實(shí)現(xiàn)Typescript項(xiàng)目熱更新的示例代碼
- 解決vuecli3.0熱更新失效的問(wèn)題
- 詳解webpack 熱更新優(yōu)化
- 全面講解CocosCreator熱更新
相關(guān)文章
C++實(shí)現(xiàn)LeetCode(169.求大多數(shù))
這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(169.求大多數(shù)),本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-08-08
C++控制臺(tái)實(shí)現(xiàn)簡(jiǎn)單人機(jī)對(duì)弈井字棋
這篇文章主要為大家詳細(xì)介紹了C++控制臺(tái)實(shí)現(xiàn)簡(jiǎn)單人機(jī)對(duì)弈井字棋,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-05-05
從匯編看c++的默認(rèn)析構(gòu)函數(shù)的使用詳解
本篇文章是對(duì)c++中默認(rèn)析構(gòu)函數(shù)的使用進(jìn)行了詳細(xì)的分析介紹。需要的朋友參考下2013-05-05
基于C++實(shí)現(xiàn)職工管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了基于C++實(shí)現(xiàn)職工管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-06-06
利用Matlab制作一款刮刮樂(lè)抽獎(jiǎng)特效
七夕節(jié)還不知道送啥,教你用MATLAB制作一款刮刮樂(lè)抽獎(jiǎng)特效,讓她的手氣決定她的禮物。文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下2022-03-03

