cocos3.10 Luaスケジューラの使用

1938 ワード

フレームごとにhelloを印刷し、画面をクリックした後にスケジューラを停止します.
ここでは、スケジューリングについて説明します.
cc.Director:getInstance():getScheduler()

完全なコードは次のとおりです.
local sche =  cc.Director:getInstance():getScheduler()
local schNode = nil 
function aLayer:updateSche(bUpdate)
    local function aaa()
        schNode = sche:scheduleScriptFunc(function()
            print("hello")
        end,0,false)      --
    end
    if bUpdate then
     aaa()
    else
        if schNode ~= nil then
        sche:unscheduleScriptEntry(schNode)
        end
    end
end

function aLayer:onTouchBegan(t,e)
    self:updateSche(false)
	local pTouch = t:getLocation()
	return true
end
登録タッチイベントのコードは以下の通りです.
function aLayer:ZhuCeEvent()
    local function onTouchBegan(touch, event) --onTouchBegan
    	return self:onTouchBegan(touch, event)
    end
    
    local function onTouchMoved(touch, event) --onTouchMoved
        self:onTouchMoved(touch, event)
    end
    
    local function onTouchEnded(touch, event) --onTouchEnded
        self:onTouchEnded(touch, event)
    end
    
    local function onTouchCancelled(touch, event) --onTouchCancelled
        self:onTouchCancelled(touch, event)
    end
    --TouchListener
    local pTouchListener = cc.EventListenerTouchOneByOne:create();
    pTouchListener:setSwallowTouches(true)
    pTouchListener:registerScriptHandler(onTouchBegan, cc.Handler.EVENT_TOUCH_BEGAN)
    pTouchListener:registerScriptHandler(onTouchMoved, cc.Handler.EVENT_TOUCH_MOVED)
    pTouchListener:registerScriptHandler(onTouchEnded, cc.Handler.EVENT_TOUCH_ENDED)
    pTouchListener:registerScriptHandler(onTouchCancelled, cc.Handler.EVENT_TOUCH_CANCELLED)
    --EventDispatcher
    self:getEventDispatcher():addEventListenerWithSceneGraphPriority(pTouchListener, self)
end
スケジューリングが必要な場合に使用
self:updateSche(ture)
不要な場合は、スクリーンをタッチするとself:updateSche(false)が呼び出されます.