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

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

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

2021-10-27 17:56 作者:unity小能手  | 我要投稿

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

由于其應(yīng)用場(chǎ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ù)的簡(jiǎn)單用法

例如:某個(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。




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

分享到微博請(qǐng)遵守國(guó)家法律
防城港市| 闽清县| 海林市| 临高县| 灵台县| 丽江市| 师宗县| 普陀区| 水城县| 拉萨市| 辽阳县| 东兰县| 昭通市| 株洲市| 开原市| 疏勒县| 德安县| 松江区| 衡南县| 阿荣旗| 黄山市| 雷州市| 蒙山县| 兰溪市| 元谋县| 南昌市| 闽清县| 同德县| 岳阳县| 汤原县| 太康县| 太仆寺旗| 商洛市| 北票市| 莱阳市| 高台县| 庐江县| 桂阳县| 沂南县| 郧西县| 三台县|