cocos2d-lua 触摸屏幕,动作变速

printDebug("===============start debug===================")
local direction = cc.Director:getInstance() 
local defSch = direction:getScheduler()

local sched1 = cc.Scheduler:new()
sched1:retain()
defSch:scheduleScriptFunc(handler(sched1, sched1.update), 0, false)

local actionManager1 = cc.ActionManager:new()
actionManager1:retain()
-- sched1->scheduleUpdateForTarget(actionManager1, 0, false)
local updateCbkHandle = sched1:scheduleScriptFunc(handler(actionManager1, actionManager1.update), 0, false)

local effLayer = viewMgr:getEffectLayer()
local size = effLayer:getContentSize()
local widget = ccui.Layout:create()

widget:setBackGroundColorType(1)
widget:setBackGroundColor(cc.c3b(255, 0, 0))
widget:setContentSize(100, 100)
widget:align(cc.p(0.5, 0.5), 0, size.height*0.5)
effLayer:addChild(widget, 999)

widget:setActionManager(actionManager1)


local layer2 = cc.LayerColor:create(cc.c3b(0, 255, 0), 100, 100)
layer2:setPosition(cc.p(0,  size.height*0.5-300))
effLayer:addChild(layer2)
layer2:setActionManager(actionManager1)
layer2:runAction(cc.MoveBy:create(5, cc.p(500, 0)))

widget:runAction(cc.MoveBy:create(5, cc.p(500, 0)))


local layerTouch = cc.LayerColor:create(cc.c3b(0, 255, 0), 100, 100)
layerTouch:setPosition(cc.p(0, 0))
effLayer:addChild(layerTouch)
layerTouch:setTouchEnabled(true)
layerTouch:onTouch(function(event)
    if event.name ~= "began" then return end
    sched1:setTimeScale(30)
end)


--回收定时器
if sched1 ~= nil then
    sched1:release()
    sched1 = nil
end

if actionManager1 ~= nil then
    actionManager1:release()
    actionManager1 = nil
end

if updateCbkHandle ~= nil then
    local direction = cc.Director:getInstance():getScheduler()
    direction:unscheduleScriptEntry(updateCbkHandle)
    updateCbkHandle = nil
end
printDebug("===============ended debug===================")

 

你可能感兴趣的:(lua,cocos2d-x)