中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

[cocos2d-x]定時器函數scheduleUpdate

發布時間:2020-07-10 10:19:56 來源:網絡 閱讀:301 作者:蓬萊仙羽 欄目:游戲開發

正文:

1. scheduleUpdate

我們現在來新建一個Cocos2d-x的項目,然后把HelloWorldSceneinit函數的多余代碼刪掉,然后我們敲一行代碼:

bool HelloWorld::init() {     bool bRet = false;     do     {         CC_BREAK_IF(! CCLayer::init());          this->scheduleUpdate();          bRet = true;     } while (0);      return bRet; }

然后大家運行項目,有沒有發現?神奇的事情發生了!

(小若:哪里?什么都沒有!黑屏!)

別著急,還差一步(小若:你有妹妹嗎?幫我問候一下?),我們要繼承一個函數,在頭文件里加入一句:

class HelloWorld : public cocos2d::CCLayer { public:     virtual bool init();     static cocos2d::CCScene* scene();     void menuCloseCallback(CCObject* pSender);     CREATE_FUNC(HelloWorld);  	/* update函數 */ 	virtual void update(float fDelta); };

然后在函數里打印日志:

void HelloWorld::update( float fDelta ) { 	CCLOG("update"); }

最后,用調試模式運行,我們將看到一串串的日志輸出:

update

update

update

update

update

update

update

update

Update

(小若:!!!)

2. 輕微解釋原理

這倒底是什么情況?我們已經實現了定時器了,就是這么簡單。我稍微解釋一下,不會太深入。

(小若:你也沒有那個水平= =

this->scheduleUpdate()函數是為了把當前節點(比如CCLayer)添加到隊列里,也許不是隊列,總是一個隊列。

(小若:算了,你別解釋了。。。)

只要把節點添加到隊列里(或許是其它結構,總之可以存放節點),那么這個節點就會在游戲運行的每一幀被調用一次update函數。

我們也看到,update函數里有一個float fDelta參數,這個參數的意思是,上一次調用這個函數到本次調用這個函數,中間間隔了多少秒。

好了,只是介紹性的教程,就不說得太多了。

(小若:等等!這根本就不像定時器!一點都不定時!!)


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

乾安县| 东兰县| SHOW| 定结县| 罗田县| 阿城市| 翁牛特旗| 芦山县| 五大连池市| 伊川县| 离岛区| 余姚市| 云南省| 延庆县| 庄河市| 齐齐哈尔市| 泸水县| 且末县| 运城市| 唐海县| 铁岭市| 白沙| 乐都县| 华阴市| 会理县| 米脂县| 张家界市| 来宾市| 突泉县| 广灵县| 镇巴县| 湘乡市| 吉林市| 博罗县| 怀安县| 和政县| 新昌县| 博湖县| 乌兰察布市| 古交市| 余江县|