国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊

Cocos Creator中定時(shí)任務(wù)的實(shí)現(xiàn)

2022-01-01 20:32 作者:unity小能手  | 我要投稿

在Cocos Creator游戲開發(fā)中,經(jīng)常需要使用定時(shí)任務(wù),例如,賽車游戲游戲開始前的倒計(jì)時(shí),玩家游戲結(jié)束之后等待3秒進(jìn)入下一局,打地鼠游戲中,地鼠出洞3秒后消失,飛機(jī)大戰(zhàn)中飛機(jī)每隔1秒鐘發(fā)射一顆子彈等等。

由于其應(yīng)用場景非常多,因此, Cocos Creator 中為我們提供了方便的計(jì)時(shí)器,這個(gè)計(jì)時(shí)器源自于 Cocos2d-x 中的 cc.Scheduler,它保留在了 Cocos Creator 中并適配了基于組件的使用方式。

也許有人會(huì)認(rèn)為使用JS中的 setTimeout 和 setInterval 就足夠了,但是作為開發(fā)者當(dāng)然可以使用這兩個(gè)函數(shù),不過使用Cocos Creator進(jìn)行游戲開發(fā),我們更推薦使用計(jì)時(shí)器,因?yàn)樗訌?qiáng)大靈活,和組件也結(jié)合得更好!

下面來看看它的具體使用方式:

【1】schedule執(zhí)行定時(shí)任務(wù)的簡單用法

例如:某個(gè)任務(wù)需要每隔1秒執(zhí)行一次,代碼如下:

component.schedule(function() {

? ?this.doSomething(); // 這里的 this 指向 component

}, 1);

【2】schedule執(zhí)行定時(shí)任務(wù)的靈活用法

例如:某個(gè)任務(wù)需要在10秒后開始執(zhí)行,每5秒執(zhí)行一次回調(diào),重復(fù)3次。

var interval = 5; // 以秒為單位的時(shí)間間隔

var repeat = 3; // 重復(fù)次數(shù)

var delay = 10; // 開始延時(shí)

component.schedule(function() {

? ? this.doSomething(); // 這里的 this 指向 component

}, interval, repeat, delay);

【3】scheduleOnce定時(shí)執(zhí)行一次(快捷方式)

例如:某個(gè)任務(wù)需要在兩秒后執(zhí)行一次回調(diào)函數(shù),之后就停止。

component.scheduleOnce(function() {

? ? this.doSomething(); // 這里的 this 指向 component

}, 2);

【4】unschedule取消計(jì)時(shí)器

當(dāng)使用了周期執(zhí)行的定時(shí)任務(wù)后,之后又需要在特定的情況下取消定時(shí)任務(wù),可以采用回調(diào)函數(shù)本身來取消計(jì)時(shí)器。

this.count = 0;

this.callback = function () {

? ? if (this.count === 5) {

? ? ? ? // 在第六次執(zhí)行回調(diào)時(shí)取消這個(gè)計(jì)時(shí)器

this.unschedule(this.callback);

? ? }

? ? this.doSomething();

? ? this.count++;

}

component.schedule(this.callback, 1);

【總結(jié)】 Component 中所有關(guān)于計(jì)時(shí)器的函數(shù):

schedule 調(diào)度一個(gè)自定義的回調(diào)函數(shù)。

scheduleOnce 調(diào)度一個(gè)只運(yùn)行一次的回調(diào)函數(shù),可以指定 0 讓回調(diào)函數(shù)在下一幀立即執(zhí)行或者在一定的延時(shí)之后執(zhí)行。

unschedule 取消調(diào)度一個(gè)自定義的回調(diào)函數(shù)。

unscheduleAllCallbacks 取消調(diào)度所有已調(diào)度的回調(diào)函數(shù):定制的回調(diào)函數(shù)以及 'update' 回調(diào)函數(shù)。

這些 API 的詳細(xì)描述都可以在 Component API 文檔中找到。如下:

除此之外,如果需要每一幀都執(zhí)行一個(gè)函數(shù),請(qǐng)直接在 Component 中添加 update 函數(shù),這個(gè)函數(shù)將默認(rèn)被每幀調(diào)用,這在生命周期文檔中有詳細(xì)描述。另外需要注意:cc.Node 不包含計(jì)時(shí)器相關(guān) API。

關(guān)于定時(shí)任務(wù)的分享就到這里,更多課程咨詢請(qǐng)點(diǎn)擊下方鏈接或添加筆者主頁群聊:

https://bycwedu.vipwan.cn/promotion_channels/630597732


Cocos Creator中定時(shí)任務(wù)的實(shí)現(xiàn)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
张家界市| 吉林市| 通河县| 都安| 卢龙县| 天镇县| 凤阳县| 尚志市| 博野县| 马公市| 麟游县| 固原市| 湟源县| 开远市| 株洲市| 新密市| 尚志市| 桃源县| 徐汇区| 安塞县| 新化县| 新巴尔虎左旗| 丰都县| 潜山县| 阿勒泰市| 宾阳县| 安图县| 遂宁市| 哈尔滨市| 山丹县| 长垣县| 房产| 莲花县| 洛川县| 疏附县| 东阳市| 龙州县| 巍山| 宿松县| 公主岭市| 左权县|