溫馨提示×

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

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

cocos2dx調(diào)度器scheduler怎么用

發(fā)布時(shí)間:2022-01-07 21:32:10 來源:億速云 閱讀:145 作者:柒染 欄目:開發(fā)技術(shù)

今天就跟大家聊聊有關(guān)cocos2dx調(diào)度器scheduler怎么用,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

調(diào)度器(scheduler)是主要是為游戲提供定時(shí)事件和定時(shí)服務(wù)。常常用來游戲的一些定時(shí)處理的功能,例如一些邏輯判斷,碰撞檢測(cè)等。

Cocos2dx提供了三種常用的調(diào)度器(scheduler)來讓我們使用。

默認(rèn)調(diào)度器(schedulerUpdate)

默認(rèn)調(diào)度器使用Node的刷新事件update方法,該方法在每幀繪制之前都會(huì)被調(diào)用一次。由于每幀之間時(shí)間間隔較短,所以每幀刷新一次已足夠完成大部分游戲過程中需要的邏輯判斷。

我們?cè)谑褂媚J(rèn)調(diào)度器(schedulerUpdate)時(shí)候,需要重載Node的update方法來執(zhí)行自己的邏輯代碼。如果需要停止這個(gè)調(diào)度器,可以使用unschedulerUpdate()方法。

使用時(shí)候首先在.h文件里重寫update方法:void update(float dt) 。

在調(diào)用的地方直接使用scheduleUpdate()方法調(diào)用update的實(shí)現(xiàn)。

自定義調(diào)度器(scheduler)

有時(shí)候引擎自帶的調(diào)度器并不適合我們的需要,所以需要自己定義調(diào)度器。而cocos2dx則提供了此方法。

schedule(SEL_SCHEDULE selector, float interval, unsigned int repeat, float delay)

第一個(gè)參數(shù)selector即為你要添加的事件函數(shù)。

第二個(gè)參數(shù)interval為事件觸發(fā)時(shí)間間隔。

第三個(gè)參數(shù)repeat為觸發(fā)一次事件后還會(huì)觸發(fā)的次數(shù),默認(rèn)值為kRepeatForever,表示無限觸發(fā)次數(shù)。

第四個(gè)參數(shù)delay表示第一次觸發(fā)之前的延時(shí)。

單次調(diào)度器(schedulerOnce)

Cocos2d-x同樣提供了單次調(diào)度器,只進(jìn)行一次調(diào)度。

scheduleOnce(schedule_selector(HelloWorld::updateOnce), 0.1f);

這里我用LaberTTF來實(shí)現(xiàn)一個(gè)數(shù)字每次+1自增長(zhǎng)的默認(rèn)調(diào)度器,來動(dòng)態(tài)改變LabelTTF的值。

cocos2dx調(diào)度器scheduler怎么用

看完上述內(nèi)容,你們對(duì)cocos2dx調(diào)度器scheduler怎么用有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI