Lua_函数回调
来源:互联网 发布:马尔可夫矩阵怎么算 编辑:程序博客网 时间:2024/05/20 11:46
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("GameScene") 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"-- 定义常量func = 1funcN = 2funcND = 3local size = cc.Director:getInstance():getWinSize()local debug = truecclog = function(...) if debug then print(string.format(...)) endendlocal GameScene = class("GameScene",function() local scene = cc.Scene:createWithPhysics() scene:getPhysicsWorld():setDebugDrawMask(cc.PhysicsWorld.DEBUGDRAW_ALL) return sceneend)function GameScene:ctor() self.visibleSize = cc.Director:getInstance():getVisibleSize() self.origin = cc.Director:getInstance():getVisibleOrigin()endfunction GameScene.create() local scene = GameScene.new() scene:addChild(scene:createAction()) return sceneendfunction GameScene:createAction() local layer = cc.Layer:create() local bg = cc.Sprite:create("Background.png") bg:setPosition(cc.p(size.width/2, size.height/2)) layer:addChild(bg) local function OnClickMenu(tag, menuItemSender) cclog("tag = %d", tag) actionFlag = menuItemSender:getTag() local scene = require("ActionScene") local nextScene = scene.create() local ts = cc.TransitionJumpZoom:create(1, nextScene) cc.Director:getInstance():pushScene(ts) end local pItmLabel1 = cc.Label:createWithBMFont("fonts/fnt2.fnt","CallFunc") local pItmMenu1 = cc.MenuItemLabel:create(pItmLabel1) pItmMenu1:setTag(func) pItmMenu1:registerScriptTapHandler(OnClickMenu) local pItmLabel2 = cc.Label:createWithBMFont("fonts/fnt2.fnt", "CallFuncN") local pItmMenu2 = cc.MenuItemLabel:create(pItmLabel2) pItmMenu2:setTag(funcN) pItmMenu2:registerScriptTapHandler(OnClickMenu) local pItmLabel3 = cc.Label:createWithBMFont("fonts/fnt2.fnt", "CallFuncND") local pItmMenu3 = cc.MenuItemLabel:create(pItmLabel3) pItmMenu3:setTag(funcND) pItmMenu3:registerScriptTapHandler(OnClickMenu) local menu = cc.Menu:create(pItmMenu1, pItmMenu2, pItmMenu3) menu:alignItemsVertically() layer:addChild(menu) return layerendreturn GameScene
</pre><pre name="code" class="cpp">require "Cocos2d"require "Cocos2dConstants"local size = cc.Director:getInstance():getWinSize()local HIDE_TAG = truelocal isPlaying = falselocal planelocal ActionScene = class("ActionScene",function() return cc.Scene:create()end)function ActionScene:ctor() cclog("ActionScene init")endfunction ActionScene.create() local scene = ActionScene.new() scene:addChild(scene:createLayer()) return sceneendfunction ActionScene:createLayer() --函数动作 cclog("ActionScene actionFlag = %d", actionFlag) local layer = cc.Layer:create() local bg = cc.Sprite:create("Background.png") bg:setPosition(cc.p(size.width/2, size.height/2)) layer:addChild(bg) plane = cc.Sprite:create("Plane.png") plane:setPosition(cc.p(size.width/2, size.height/2)) layer:addChild(plane) local backMenuItem = cc.MenuItemImage:create("Back-up.png","Back-down.png") backMenuItem:setPosition(cc.Director:getInstance():convertToGL(cc.p(120, 100))) local goMenuItem = cc.MenuItemImage:create("Go-up.png","Go-down.png") goMenuItem:setPosition(size.width/2, 100) local menu = cc.Menu:create(backMenuItem, goMenuItem) menu:setPosition(cc.p(0, 0)) layer:addChild(menu) local function backMenu(pSender) cclog("ActionScene backMenu") cc.Director:getInstance():popScene() end backMenuItem:registerScriptTapHandler(backMenu) local function goMenu(pSender) cclog("ActionScene goMenu") if actionFlag == func then self:OnCallFunc() elseif actionFlag == funcN then self:OnCallFuncN() else self:OnCallFuncND() end end goMenuItem:registerScriptTapHandler(goMenu) return layerendlocal function CallBack1() plane:runAction(cc.TintBy:create(0.5, 255, 0, 255))endfunction ActionScene:OnCallFunc() cclog("ActionScene OnCallFunc") local ac1 = cc.MoveBy:create(2, cc.p(100, 100)) local ac2 = ac1:reverse() local acf = cc.CallFunc:create(CallBack1) local seq = cc.Sequence:create(ac1, ac2, acf) plane:runAction(cc.Sequence:create(seq))endlocal function CallBack2(pSender) local sp = pSender sp:runAction(cc.TintBy:create(1, 255, 0, 255))endfunction ActionScene:OnCallFuncN() cclog("ActionScene OnCallFuncN") local ac1 = cc.MoveBy:create(2, cc.p(100, 100)) local ac2 = ac1:reverse() local acf = cc.CallFunc:create(CallBack2) local seq = cc.Sequence:create(ac1, ac2, acf) plane:runAction(cc.Sequence:create(seq))endlocal function CallBack3(pSender, table) local sp = pSender for k,v in pairs(table) do print(k,v) end cclog("CallBack3 %d", table[1]) sp:runAction(cc.TintBy:create(table[1], table[2], table[3], table[4]))endfunction ActionScene:OnCallFuncND() cclog("ActionScene OnCallFuncND") local ac1 = cc.MoveBy:create(2, cc.p(100, 100)) local ac2 = ac1:reverse() local acf = cc.CallFunc:create(CallBack3, {1, 255, 0, 255}) local seq = cc.Sequence:create(ac1, ac2, acf) plane:runAction(cc.Sequence:create(seq))endreturn ActionScene
0 0
- Lua_函数回调
- cocos2dx-3.10-lua_函数
- Lua_函数_008
- Lua_第 5 章 函数
- Lua_第 6 章 再论函数
- Lua_第25章 调用 C 函数
- cocos2dx-lua_添加c++自定义函数
- Lua_第26章撰写 C 函数的技巧
- lua_学习
- Lua_基本Lua语法
- Lua_面向对象
- Lua_各种工具方法
- Lua_创建Label
- Lua_创建Menu
- Lua_创建精灵
- Lua_场景节点事件
- Lua_单点触摸
- Lua_多点触摸
- HTML5 - frameset框架集
- SQL SERVER 批量数据插入方法
- Lua_速度动作
- ali
- uva11292
- Lua_函数回调
- 第一次使用ejb
- php五大运行模式CGI,FAST-CGI,CLI,ISAPI,APACHE模式浅谈
- Apache虚拟主机的六种配置方法
- Lua_特效动作
- 11300 - Spreading the Wealth
- 在apache下配置浏览器缓存
- C++学习笔记(一)
- RuntimeError: `attr_accessible` is extracted out of Rails into a gem