>> 自定义窗口大小
编辑代码之后,总得看看不同大小窗口的展示效果。浏览器自带的模拟器类型可能满足不了,我们可以自定义。
1、根据路径(右键选中CocosCreator.app,选择“显示包内容”),打开boot.js文件。
2、可以看到已加入的设备。
3、我们只需要向这个数组中添加元素即可,其他内容不做任何更改。
name:设备名称
width和height:宽和高,可以自定义大小。
ratio:比率,宽、高分别乘以ratio才是最终模拟器窗口大小。
例子:比如我们想添加 640 * 960 的分辨率窗口,可以有以下几种方式:
{name: 'custom', width:640, height:960, ratio:1} // 第一种
{name: 'custom', width:320, height:480, ratio:2} // 第二种
{name: 'custom', width:250, height:375, ratio:2.56} // 第三种
4、设置好之后,保存并刷新浏览器上的模拟器,即可看到我们添加的设备。
>> 使用VScode打开CocosCreator工程
1、打开VSCode工具 ,按键command+shift+p。
2、在弹出的搜索框中输入“Shell Command: Install ‘code’ command in PATH”,选中并执行该结果。
3、打开终端,cd到要用VSCode打开到文件夹,然后输入指令code . 即可(注意:指令是code 空格 再加个 .)。
4、此时,我们可以用creator打开项目,点击导航栏的“扩展 -> 使用VSCode打开工程”, 即可打开相应项目。
>> 关于节点
CCC在渲染节点的时候,父节点和子节点的相对坐标都是按照锚点来设置的。而Cocos2d-x不管锚点设置在什么位置,其节点坐标永远是以父节点的左下角为基础。该方面二者还是有很大差别的。
CCC中很多节点是没有"x"和“y”属性的,比如Label,只能通过Node节点渲染,并用相关属性将Label捆绑在Node上,只能通过改变Node的x和y来改变位置属性。
>> destroy 和 removeFromParent 的区别
一个节点调用 removeFromParent 后,它不一定能立即完全从内存中释放,还可能会因为一些逻辑上的问题,导致程序中仍然引用到了这个对象,比如:
node.removeFromParent()
otherNode.addChild(node) //该对象并没有被释放
所以,一旦某个节点不再使用,直接调用destory,可以降低内存泄露的几率。值得一提的是,被销毁的节点并不会立刻被移除,而是在当前帧逻辑更新结束后,统一被释放。我们可以通过cc.IsValid()判断其是否已经被销毁
>> meta文件
Cocos Creator 会为 assets 目录下的每一个文件和目录生成一个同名的 meta 文件,其内容如下:
{
"ver": "1.0.0", //版本
"uuid": "911560ae-98b2-4f4f-862f-36b7499f7ce3", //全局唯一id
"asyncLoadAssets": false, //异步加载
"autoReleaseAssets": false, //自动释放资源
"subMetas": {} //子元数据
}
我们可以看到,每个 meta 文件都有唯一的 uuid(Universally Unique Identifier,通用唯一标识符)。uuid 是 Creator 用来管理资源的,由此可以知道在 Creator 引擎中,识别一个文件 不是简单地通过 路径+文件名 定位,而是通过 uuid 来引用文件,因此,可以在编辑资源管理中,随意删除、移动文件。
>> uuid冲突
uuid 是全局唯一的,产生冲突肯定是多个文件的 uuid 相同了。出现这种问题的原因一般有以下两个:
1、在操作系统的文件管理器中移动文件时,将剪切、粘贴不小心操作成了复制、粘贴,同时也把 meta 文件复制过去了。导致项目中同时出现两个相同的 meta 文件。
2、在多人协作时,从版本管理工具中,更新资源时碰巧遇到别人生成的 uuid 与你的电脑上某个文件生成的 uuid 一样了,但这种情况非常非常罕见。
出现冲突时解决办法:
先关闭 Creator 编辑器,再任意删除其中一个 meta 文件,然后再打开 Creator 编辑器就可以解决。这种方法虽然可以解决问题,但在编辑器中引用到这个资源的地方将会出现资源丢失,需要重新编辑或者重新配置一次。最好是通过版本管理工具还原此 meta 文件。