quick-cocos2dx AppBase
2013-12-13 16:38
267 查看
local AppBase = class("AppBase") AppBase.APP_ENTER_BACKGROUND_EVENT = "APP_ENTER_BACKGROUND_EVENT" AppBase.APP_ENTER_FOREGROUND_EVENT = "APP_ENTER_FOREGROUND_EVENT" function AppBase:ctor(appName, packageRoot) -- 使App的对象能够附加组件。 cc.GameObject.extend(self) -- 添加组件EventProtocol,将其中的函数导出到app上。 self:addComponent("components.behavior.EventProtocol"):exportMethods() self.name = appName self.packageRoot = packageRoot or "app" -- 在通知中心注册进入前台、后台的响应函数 local notificationCenter = CCNotificationCenter:sharedNotificationCenter() notificationCenter:registerScriptObserver(nil, handler(self, self.onEnterBackground), "APP_ENTER_BACKGROUND_EVENT") notificationCenter:registerScriptObserver(nil, handler(self, self.onEnterForeground), "APP_ENTER_FOREGROUND_EVENT") self.snapshots_ = {} -- set global app -- 若想使用此app,可用全局变量 “app” app = self end function AppBase:run() end -- 结束游戏 function AppBase:exit() CCDirector:sharedDirector():endToLua() os.exit() end -- 进入某场景,实际调用display.replaceScene function AppBase:enterScene(sceneName, args, transitionType, time, more) local scenePackageName = self. packageRoot .. ".scenes." .. sceneName local sceneClass = require(scenePackageName) local scene = sceneClass.new(unpack(totable(args))) display.replaceScene(scene, transitionType, time, more) end -- 创建view function AppBase:createView(viewName, ...) local viewPackageName = self. packageRoot .. ".views." .. viewName local viewClass = require(viewPackageName) return viewClass.new(...) end function AppBase:makeLuaVMSnapshot() self.snapshots_[#self.snapshots_ + 1] = CCLuaStackSnapshot() while #self.snapshots_ > 2 do table.remove(self.snapshots_, 1) end return self end function AppBase:checkLuaVMLeaks() assert(#self.snapshots_ >= 2, "AppBase:checkLuaVMLeaks() - need least 2 snapshots") local s1 = self.snapshots_[1] local s2 = self.snapshots_[2] for k, v in pairs(s2) do if s1[k] == nil then print(k, v) end end return self end function AppBase:onEnterBackground() self:dispatchEvent({name = AppBase.APP_ENTER_BACKGROUND_EVENT}) end function AppBase:onEnterForeground() self:dispatchEvent({name = AppBase.APP_ENTER_FOREGROUND_EVENT}) end return AppBase
相关文章推荐
- cocos2dx quick3.3报错 NSConcreteAttributedString initWithString:: nil value
- cocos2dx quick lua 学习笔记1
- quick-cocos2dx 新建项目
- quick cocos2dx学习记录
- quick-cocos2dx Socket连接若干问题总结
- 基于Quick-cocos2dx 2.2.3 的动态更新实现(不需修改任何框架上的)
- 【COCOS2DX-LUA 脚本开发之八】不用CCHttpClient而转用quick-cocos2d-x或cocos2dx-LuaProxy的Lua框架实现Lua-Http网络交互!
- 在Quick-cocos2dx中使用云风pbc解析Protocol Buffers,支持win、mac、ios、android
- 【COCOS2DX-LUA 脚本开发之八】不用CCHttpClient而转用quick-cocos2d-x或cocos2dx-LuaProxy的Lua框架实现Lua-Http网络交互!
- Quick-cocos2d-x 与COCOS2DX 区别
- Quick-cocos2dx-lua 游戏IOS端编译
- Quick-cocos2d-x 与COCOS2DX 区别
- quick-cocos2dx学习笔记
- 在Quick-cocos2dx中使用云风pbc解析ProtocolBuffers,支持win、mac、ios、android
- quick-cocos2dx 3.3 中如何侦听碰撞事件
- QUICK_COCOS2DX创建新项目
- 在Quick-cocos2dx中使用云风pbc解析Protocol Buffers,支持win、mac、ios、android
- quick-cocos2dx使用windows下向导生成的IOS工程在MAC下编译报错的解决方法
- quick_cocos2dx 调度器
- 为Quick-Cocos2dx-2.26添加C++函数供Lua调用