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í)間。下面通過代碼看看我們?nèi)绾螌?shí)現(xiàn)。
bool HelloWorld::init() { bool bRet = false; do { CC_BREAK_IF(! CCLayer::init()); //獲取系統(tǒng)時(shí)間 //time_t是long類型,精確到秒,通過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 //通過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中背景音樂和音效使用實(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熱更新失效的問題
- 詳解webpack 熱更新優(yōu)化
- 全面講解CocosCreator熱更新
相關(guān)文章
c語言獲取用戶輸入字符串是scanf和gets的區(qū)別詳解
今天小編就為大家分享一篇c語言獲取用戶輸入字符串是scanf和gets的區(qū)別詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-07-07String底層函數(shù)的實(shí)現(xiàn)方式詳解
這篇文章主要介紹了String底層函數(shù)的實(shí)現(xiàn)方式,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-09-09QT實(shí)戰(zhàn)之打開最近圖片功能的實(shí)現(xiàn)
這篇文章主要為大家詳細(xì)介紹了如何利用Qt和QSettings實(shí)現(xiàn)打開最近圖片功能,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)QT有一定的幫助,感興趣的可以了解一下2022-06-06C++數(shù)據(jù)結(jié)構(gòu)鏈表基本操作示例過程
這篇文章主要為大家介紹了C++數(shù)據(jù)結(jié)構(gòu)鏈表基本操作的示例過程有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪2021-11-11C++ OpenCV實(shí)現(xiàn)像素畫的示例代碼
這篇文章主要介紹了通過OpenCV進(jìn)行圖片像素的變化,從而形成像素畫效果的功能。文中的示例代碼講解詳細(xì),感興趣的小伙伴可以動(dòng)手試一試2022-01-01Cocos2d-x UI開發(fā)之場景切換代碼實(shí)例
這篇文章主要介紹了Cocos2d-x UI開發(fā)之場景切換代碼實(shí)例,cocos2d-x中的場景切換是通過導(dǎo)演類調(diào)用相應(yīng)的方法完成的,本文通過代碼和詳細(xì)注釋來說明,需要的朋友可以參考下2014-09-09