【Cocos2d-html5遊戲引擎學習筆記(12)】Schedule定時器

好久沒有更新Cocos2d-html5的博文了,這兩個月忙着一些比賽,所以就耽誤了,嘿嘿,不過關於這個專欄還是有很多章節要寫,所以還是慢慢來更新吧。


Schedule,從翻譯的角度上來說就是”時間表“,差不多就是一個定時規劃,在cocos2d裏面使用的場景一般就是比如你想讓一個精靈間隔多少次執行什麼動畫,或者一個場景想延遲多久進行跳轉,ok,那麼就應該使用這個來實現。下面簡單說一下這個用法,因爲這個函數是間隔執行的,所以不好展示畫面,所以我就用代碼和文字來說明一下。


1. schedule(callback_fn, interval, repeat, delay)

裏面四個參數對應的含義是:

callback_fn:調用的方法名

interval:間隔多久再進行調用

repeat:重複的次數

delay:延遲多久再進行調用


2. scheduleOnce(callback_fn, delay)

該函數只調用一次callback_fn的方法


3. scheduleUpdate()
該函數會每一幀都調用,調用的方法名爲"update"


注:1.這裏涉及到的時間單位都是”秒“!
2.調用的方法,記得一定要有個float類型參數,說白了,就是添加個參數,javascript參數類型都是自動識別的。

var Helloworld = cc.Layer.extend({

    init:function () {
        this._super();
        var size = cc.Director.getInstance().getWinSize();

        this.schedule(this.timeCallback,2,2,1);
        this.scheduleOnce(this.timeCallback,2);
        this.scheduleUpdate();


        return true;
    },

    timeCallback:function(dt) {

    },

    update:function(dt){

    },

});

schedule(callback_fn, interval, repeat, delay)這個函數,其實並不需要每次都要把四個參數都帶上的,它是有重載的。

還有另外兩種形式:

schedule(callback_fn)                       每幀都調用一次,調用無數次,馬上調用
schedule(callback_fn, interval)        間隔interval調用一次,調用無數次,馬上調用


所以具體什麼情況該使用什麼函數,帶什麼參數,就要大家按需使用了。


當然不僅僅只能執行定時器,我們也可以按自己的想法去隨時停止我們的定時器,有這麼幾個方法:

unschedule(callback_fn)            停止指定的定時器方法

unscheduleAllCallbacks()          停止所有的定時器

unscheduleUpdate()                   停止update方法


關於定時器內容差不多就這些了,我用處最大的感觸就是比如遊戲開始前有個321倒計時,這裏就可以使用,或者logo顯示一定時間跳轉我們的主菜單界面,這些地方都可以使用定時器的。



發佈了57 篇原創文章 · 獲贊 112 · 訪問量 33萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章