您的位置:首页 > 移动开发 > Cocos引擎

cocos2dx+lua注册事件函数详解

2015-10-20 22:13 447 查看
registerScriptTouchHandler 注册触屏事件

registerScriptTapHandler 注册点击事件

registerScriptHandler 注册基本事件 包括 触屏 层的进入 退出 事件

registerScriptKeypadHandler 注册键盘事件

registerScriptAccelerateHandler 注册加速事件

registerScriptTouchHandler 详解(可以设置单点或多点)

function gameWindow:addLayerTouchEventMethod1()

local function onTouchEvent(eventType, x, y)

–log(“eventType = “..tostring(eventType))

if eventType == “began” then

–需要返回true

return onTouchBegan(touch, event)

elseif eventType == “moved” then

onTouchMoved(touch, event)

elseif eventType == “ended” then

onTouchEnded(touch, event)

end

end

config.bottomLayer:setTouchEnabled(true)

config.bottomLayer:registerScriptTouchHandler(onTouchEvent)

end

registerScriptTapHandler 注册点击事件

function gameWindow:addBtn()

local btn = cc.MenuItemImage:create(“white.png”, “black.png”, “black.png”)

btn:setPosition(320, 160)

local function btnClick()

log(“btnClick”)

end

btn:registerScriptTapHandler(btnClick)

local menu = cc.Menu:create()
config.bottomLayer:addChild(menu)
menu:setPosition(cc.p(0,0))

menu:addChild(btn)


end

registerScriptHandler 注册基本事件

注册触屏事件用法

function gameWindow:addLayerTouchEventMethod2()

–创建一个单点触屏事件

local listener = cc.EventListenerTouchOneByOne:create()

–注册触屏开始事件

listener:registerScriptHandler(onTouchBegan, cc.Handler.EVENT_TOUCH_BEGAN)

–注册触屏移动事件

listener:registerScriptHandler(onTouchMoved, cc.Handler.EVENT_TOUCH_MOVED)

–注册触屏结束事件

listener:registerScriptHandler(onTouchEnded, cc.Handler.EVENT_TOUCH_ENDED)

–获取层的事件派发器

local eventDispatcher = config.bottomLayer:getEventDispatcher()

–事件派发器 注册一个node事件

eventDispatcher:addEventListenerWithSceneGraphPriority(listener, config.bottomLayer)

end

注册layer的 进入 退出事件用法

function gameWindow:addLayerEnterAndExitEvent()

local function onNodeEvent(eventType)

if eventType == “enter” then

log(“enter”)

elseif eventType == “exit” then

log(“exit”)

end

end

config.bottomLayer:registerScriptHandler(onNodeEvent)

end

registerScriptHandler 注册键盘事件

function cocoEvent.addKeyboardEvent()

local function keyboardPressed(keyCode, event)

if keyCode == 23 then

log(“left”)

elseif keyCode == 24 then

log(“right”)

elseif keyCode == 25 then

log(“up”)

elseif keyCode == 26 then

log(“down”)

end

–log(“keyCode = “..tostring(keyCode))

–log(“event = “..tostring(event))

end

local function keyboardReleased(keyCode, event)
--log("keyCode = "..tostring(keyCode))
--log("event = "..tostring(event))
end
local listener = cc.EventListenerKeyboard:create()
listener:registerScriptHandler(keyboardPressed, cc.Handler.EVENT_KEYBOARD_PRESSED)
listener:registerScriptHandler(keyboardReleased, cc.Handler.EVENT_KEYBOARD_RELEASED)
local eventDispatcher = config.bottomLayer:getEventDispatcher()
eventDispatcher:addEventListenerWithSceneGraphPriority(listener, config.bottomLayer)


end
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  lua注册事件