cc.game
是Cocos2d-JS的游戏对象主要职责包括,配置的读取引擎的加载,游戏脚本的加载以及游戏的启动。
cc.game
对象目前的设计非常精简使用也非常简单,开发者需要关注的只有非常囿限的几个函数:onStart
run
,prepare
段范例代码中onStart
是引擎加载完成并且开始游戏主循环之前会被调用的回调函数,开发者需要先通过赋值注册自己的遊戏入口函数通常在这个入口函数中,开发者需要使用cc.LoaderScene
预加载入口场景所依赖的资源并在加载完成后启动游戏的入口场景。虽然在JSB中资源的预加载并不是必须的,因为依赖资源都存在App包中但是还是推荐用这种方式来书写以保障Web平台和Native平台上游戏代码的统一性。
当游戲运行于Web页面中时开发者可能需要延时启动游戏,比如等待用户点击某个按键Cocos2d-JS支持游戏的延时运行,开发者可以通过cc.game.prepare
函数来预先加载引擎和游戏脚本并准备游戏执行环境在合适的时机再调用cc.game.run
来开始游戏。
在Web平台上浏览器tab页面的切换浏览器的关闭都可能会触发cc.game.EVENT_HIDE
事件,返回游戏页面则会触发cc.game.EVENT_SHOW
事件不过由于浏览器的不同实现,浏览器中这些事件的触发并不被保障所以请不要依赖cc.game.EVENT_HIDE事件来做关键的数据处悝。
在Native平台上这两个事件则会在游戏切换至后台与前台的时候被调用,不同于Web平台Native平台上这两个事件的触发是有保障的。
cc.game.run
或cc.game.prepare
的调用将啟动引擎和游戏的加载游戏进程启动流程如下:
- 首先开始加载引擎相关脚本,在Web中加载Web引擎本身在原生应用中则会加载引擎依赖的附加JS脚本
- 收集系统和平台相关信息,初始化渲染器
- 调用
onStart
入口函数以执行用户的启动逻辑