游戏实现
主要介绍游戏玩法,具体实现,参考游戏源码。玩法是:游戏开始后,通过虚拟摇杆控制猴子在屏幕左右方向跳动,屏幕上随机出现香蕉,过一段时间后消失,猴子吃到香蕉得分,如果等到香蕉消失时,猴子仍旧没吃到,则游戏结束。
定制项目构建流程
1定制项目自带的文件
游戏中,有时候需要做一些定制要求,如启动页面布局修改、添加Logo等,还比如游戏资源需要做CDN的,需要在main.js内设置CDN地址,如下图:
然而每次项目重新构建后,build目录下的文件会先删掉,重新生成。在build同级目录,添加build-templates目录,生成以后会自动把build-templates目录下的文件拷贝到build内,然后再做其他处理。
所以,只需要把定制好的文件(如main.js,css布局文件)放置到build-templates目录下即可。
2定制非项目自带文件
项目上线,为了及时更新修改,一般都会勾线md5 cache:
游戏发布时,勾选md5以后,build-templates目录下的文件,虽然后自动拷贝到build目录下,但是会自动在名称后面添加md5值,如下图:
如果需要特殊处理特别的文件,如上图中的ugMeCThpOi.txt文件,就需要通过扩展包实现,扩展包具体怎么实现参考文章结尾处链接。
为了维护方便,我的demo里,是放在当前项目的packages里,扩展弄好以后,creator内就可以直接看到:
这种方法,主要是监听3个事件:
'build-start'
:构建开始时触发。'before-change-files'
:在构建结束 之前 触发,此时除了计算文件 MD5、生成 settings.js、原生平台的加密脚本以外,大部分构建操作都已执行完毕。我们通常会在这个事件中对已经构建好的文件做进一步处理。'build-finished'
:构建完全结束时触发。
为了满足上面保留txt文件的需求,我只处理了build-finished事件。需要注意的是,每个处理函数后面,callback函数一定要带上,如果不调用callback,构建就会停止。
具体要实现什么逻辑,直接在函数里按照js格式去实现即可。