Lua_键盘事件

来源:互联网 发布:国内编程语言排行 编辑:程序博客网 时间:2024/06/07 08:49
require "Cocos2d"require "Cocos2dConstants"-- for CCLuaEngine tracebackfunction __G__TRACKBACK__(msg)    cclog("----------------------------------------")    cclog("LUA ERROR: " .. tostring(msg) .. "\n")    cclog(debug.traceback())    cclog("----------------------------------------")    return msgendlocal function main()    collectgarbage("collect")    --避免内存泄漏    collectgarbage("setpause", 100)    collectgarbage("setstepmul", 5000)        --初始化导演    local director = cc.Director:getInstance()    local glview = director:getOpenGLView()    if glview == nil then        glview = cc.GLView:createWithRect("HelloLua", cc.rect(0, 0, 960, 640))        director:setOpenGLView(glview)    end    glview:setDesignResolutionSize(960, 640, cc.ResolutionPolicy.SHOW_ALL)    --显示帧率    director:setDisplayStats(true)    --设置帧率    director:setAnimationInterval(1.0 / 60)    --增加搜索路径    cc.FileUtils:getInstance():addSearchPath("src")    cc.FileUtils:getInstance():addSearchPath("res")        --创建场景    local scene = require("SettingScene")    local settingScene = scene.create()        --运行场景    if cc.Director:getInstance():getRunningScene() then        cc.Director:getInstance():replaceScene(settingScene)    else        cc.Director:getInstance():runWithScene(settingScene)    endendxpcall(main, __G__TRACKBACK__)
require "Cocos2d"require "Cocos2dConstants"local size = cc.Director:getInstance():getWinSize()local SettingScene = class("SettingScene",function()    return cc.Scene:create()end)function SettingScene.create()    local scene = SettingScene.new()    scene:addChild(scene:createLayer())    return sceneendfunction SettingScene:ctor()    cclog("SettingScene init")end-- create layerfunction SettingScene:createLayer()    local layer = cc.Layer:create()    --键盘事件    local function onKeyPressed(keyCode, event)        local buf = string.format("%d键按下!", keyCode)        local node = event:getCurrentTarget()        node:setString(buf)    end    local function onKeyReleased(keyCode, event)        local buf = string.format("%d键抬起!", keyCode)        local node = event:getCurrentTarget()        node:setString(buf)    end    local statusLabel = cc.Label:createWithSystemFont("没有键盘事件接受到!", "Arial", 25)    statusLabel:setPosition(cc.p(size.width/2.0, size.height/2.0))    layer:addChild(statusLabel)    local listener = cc.EventListenerKeyboard:create()    listener:registerScriptHandler(onKeyPressed, cc.Handler.EVENT_KEYBOARD_PRESSED)    listener:registerScriptHandler(onKeyReleased, cc.Handler.EVENT_KEYBOARD_RELEASED)    cc.Director:getInstance():getEventDispatcher():addEventListenerWithSceneGraphPriority(listener, layer)endreturn SettingScene


0 0
原创粉丝点击