刚刚接触cocos有一些问题可能比较低级,但还是希望大家帮忙释疑,在此感激不尽!
一. 关于creater和console的异同
我发现在creater的项目发布选项中,所支持的平台要比console多一些,比如"微信小游戏"和"QQ玩一玩"
$cocos run -h
usage: cocos run [-h] [-s SRC_DIR] [-q] [-p PLATFORM] [-m MODE] [-b BROWSER]
[--port [SERVER_PORT]] [--host [SERVER_HOST]]
...
optional arguments:
...
-p PLATFORM, --platform PLATFORM
select a platform (win32, web, mac, wp8, metro, linux,
android, ios, wp8_1)
...
web project arguments:
...
在 creater生成的 man.js 中我们可以看到它针对不同平台都有自己的处理方式
//main.js
if (false) {
require(window._CCSettings.debug ? 'cocos2d-js.js' : 'cocos2d-js-min.fbaf2.js');
var prevPipe = cc.loader.md5Pipe || cc.loader.assetLoader;
cc.loader.insertPipeAfter(prevPipe, wxDownloader);//微信小程序相关
boot();
return;
}
看起来creater发布的项目可能在渠道适配方面更好,而 console 需要自行根据渠道进行适配,比如"微信小程序"的各种api需要自行封装?感觉应该用 creater来避坑!
二. 关于creater构建模板的问题
creater 可以根据$PROJECT_DIR/build_templates目录的的模板文件生成html,js等文件,有时候我可能需要修改一下html的title节点或者是改一下 网页的背景颜色,我从安装包$CREATER_INSTALL_DIR/Contents/Resources/static/build-templates目录里找到了相应的模板文件,直接复制到项目目录的模板中,直接使用是不可以的,因为里面有一些模板字符如
if (<%=isQQPlay%>) {
var ORIENTATIONS = {
'portrait': 1,
'landscape left': 2,
'landscape right': 3
};
BK.Director.screenMode = ORIENTATIONS[settings.orientation];
initAdapter();
}
我不知道为什么安装目录下面的可以支持模板字符而项目目录下面的不可以,首先这些tempate/main.js有一定的平台通用性,我没有必要根据不同平台再去修改一下模板字符处的值,另一方面尽量少修改原有代码显然更加稳妥.能不能让项目目录下的模板拥有和安装目录下的模板有一样的功能呢?比如通过插件或者版本更新的方式.