最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(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)遵守國家法律
镇原县| 泰来县| 陆川县| 广丰县| 乌海市| 芮城县| 定兴县| 固原市| 娄烦县| 关岭| 正阳县| 泾阳县| 仁布县| 揭东县| 定日县| 合山市| 丘北县| 横峰县| 湘阴县| 双牌县| 新邵县| 安阳市| 余江县| 武平县| 松江区| 东乌珠穆沁旗| 华坪县| 周宁县| 瑞安市| 海城市| 纳雍县| 响水县| 顺平县| 冕宁县| 辛集市| 陇南市| 武冈市| 抚顺市| 天气| 五大连池市| 唐河县|