Creator的启动流程
以微信小游戏为例,其他平台类似(引擎会根据game.ejs模版生成对应的文件名)
一、生成的game.js文件,微信小游戏启动文件

- 补齐一些微信小游戏不支持的js接口与代码
- 增加System的一些接口能力,比如System.warmup函数
- 真正调用warmup,用来注册一些import的hook代码,当import不同的代码文件路径时,可以走不同的import处理
具体的可以参考,包括模版,以及一些源码
二、启动流程后续


- 首屏加载
- application.js的加载,这个是由模版application.ejs不同平台生成不同的代码文件
- 启动appliation.js,注册一些函数
- cc引擎的注册、初始化、启动
三、Game类的初始化与启动

对应到引擎的源码:

init中有各中事件派发、各种系统初始化逻辑
其中比较重要的是pacer的初始化与事件绑定:


pacer的tick绑定到game的updateCallback上,这里就是每一帧驱动的起点。
具体平台有自己的pacer的实现:

主要分为小游戏、原生平台、web平台的实现,主要区别就是tick的实现,有的依赖requestAnimationFrame实现,有的依赖setTimeout做延时实现。
至此整个游戏的初始化、启动、每帧tick的逻辑已经跑通
后续将分析tick的整个流程
&spm=1001.2101.3001.5002&articleId=163645953&d=1&t=3&u=ff966bc3b9304cf3bff8dbac7705760e)
9577

被折叠的 条评论
为什么被折叠?



