Cocos2d x 3 0 lua中的排程器

2021-08-18 18:11:14 字數 1725 閱讀 8091

cocos2dx 3.x lua 中使用定時器有兩種方式:

(1)self:scheduleupdatewithprioritylua(update, priority)

> 引數一:重新整理函式

> 引數二:重新整理優先順序

其中 self 為 node類 的子類。

該方法預設為每幀都重新整理一次,無法自定義重新整理時間間隔。

停止排程:self:unscheduleupdate()

(2)self.mlefttimetimer = 

scheduler:schedulescriptfunc(update, inteval, false)

> 引數一:重新整理函式

> 引數二:每次重新整理的時間間隔

> 引數三:是否只執行一次。false為無限次。

其中 scheduler 為定時器管理:cc.director:getinstance():getscheduler()

停止排程:scheduler:unschedulescriptentry(self.mlefttimetimer)

推薦使用第二種方式,因為比較通用。

1.1 使用scheduleupdatewithprioritylua函式

local layer = class("layer",function()

return cc.layer:create()

end)

function layer:ctor()

end--更新ui

function layer:updateui()

endfunction layer:init()

--註冊每幀排程器(引數:每幀回掉,優先順序)

self:scheduleupdatewithprioritylua(updateui,0)

local function onnodeevent(tag)

if tag == "exit" then

--取消註冊

self:unscheduleupdate()

endend

self:registerscripthandler(onnodeevent)

end

1.2 使用schedulescriptfunc函式:

function mineralwin:startrefreshlefttime()

local scheduler = cc.director:getinstance():getscheduler()

self.mlefttimetimer = scheduler:schedulescriptfunc(handler(self, self.refreshlefttime), 1, false)

end

function mineralwin:stoprefreshlefttime()

local scheduler = cc.director:getinstance():getscheduler()

if self.mlefttimetimer then

scheduler:unschedulescriptentry(self.mlefttimetimer)

self.mlefttimetimer = nil

endend

cocos2d x3 0 lua學習(乙個)

最近開始學習lua這裡記錄下乙個寫簡單lua 但我在寫lua 自己主動的 提示的一些問題,誰希望提供下很好的解決方案,編輯我用sublime text2 test.lua。這裡建立乙個場景,乙個層 乙個label 將test.lua換到helloworld 中的main.lua就好 created ...

Cocos2d x中Lua與C 通訊

int lual dofile lua state l,const char filename 載入並執行指定檔案,沒有錯誤返回0 void lua settop lua state l,int index 引數允許傳入任何可接受的索引以及 0 它將把堆疊的棧頂設為這個索引。如果新的棧頂比原來的大,...

cocos2d x 3 0 編譯問題

3.0最主要的問題是它引進了c 11 所有ndk版本必須是r8e版本以上,即使你已經有這些已經準備好,還要注意一點是ndk編譯的時候預設採用ndk toolchain version 4.6的形式去編譯,這個時候就會出現 error thread in namespace std does not ...