游戏DrawCall分析利器-SpectorJS使用入门
1、什么是DrawCall 一个DrawCall就是CPU向GPU发送一次绘制命令,例如:某个场景的DrawCall是80,代表该场景每个渲染帧内GPU需要绘制80次。每一次DrawCall都需要传输纹理、顶点数据以及渲染上下文切换,是非常消耗性能的操作,DarwCall过高会直接影响游戏的整体性能… 阅读更多 »游戏DrawCall分析利器-SpectorJS使用入门
1、什么是DrawCall 一个DrawCall就是CPU向GPU发送一次绘制命令,例如:某个场景的DrawCall是80,代表该场景每个渲染帧内GPU需要绘制80次。每一次DrawCall都需要传输纹理、顶点数据以及渲染上下文切换,是非常消耗性能的操作,DarwCall过高会直接影响游戏的整体性能… 阅读更多 »游戏DrawCall分析利器-SpectorJS使用入门
AssetCleanerForCocosCreator 简介:一个基于Node.js的CocosCreator项目资源清理工具,自动化统计有哪些资源未使用,以及各类型资源的占比情况,从而帮助减小包体。 开源代码地址:https://github.com/foupwang/AssetCleanerFo… 阅读更多 »CocosCreator项目资源优化工具-AssetCleaner教程
在Creator游戏开发中,一般是这样创建对象: for (let i = 0; i < 10; i++) { let node = cc.instantiate(prefab); ... } 上面代码本身没有问题,就是连续实例化10个对象。但在大量UI、动画同时出现时,却极有可能引起卡顿,因为实例… 阅读更多 »CocosCreator中使用分帧创建对象
使用 gulp build 命令编译CocosCreator 2.0.9版本的engine源码,报“JavaScript heap out of memory”的错误,如下: 原因是源码文件数量太多,导致内存不足。 解决方法是编译命令加上参数,加大V8引擎的内存上限,例如改为8G,可如下: gulp… 阅读更多 »编译CocosCreator定制引擎失败的解决
含义 convertToNodeSpace 将一个点转换到节点 (局部) 坐标系,并加上锚点的坐标。 也就是说返回的坐标是相对于节点包围盒左下角的坐标。 convertToNodeSpaceAR 将一个点转换到节点 (局部) 空间坐标系,这个坐标系以锚点为原点。 也就是说返回的坐标是相对于节点原点的… 阅读更多 »CocosCreator开发笔记(22)-使用convertToNodeSpace和convertToWorldSpace
要编译Creator项目的Windows版本,首先做以下两件事: – 安装VS2015或VS2017; – 安装Python 2.7.5+; 本文以Creator 1.10.2 + VS2017为例。 安装完VS2017和Python 2.7.13后,构建Creator项目的Windows版本,报以… 阅读更多 »使用VS2017编译Creator项目Windows版本的过程
cc.Sprite是Creator中比较常用的一个组件,实际使用中常常需要做动态/异步加载。要让它显示图片,实际上主要是设置SpriteFrame。 let path = ‘resources/test.png’; let sp = node.getComponent(cc.Sprite); if … 阅读更多 »CocosCreator开发笔记(21)-cc.Sprite的动态加载和释放
cc.Sprite是Creator中比较常用的一个组件,实际使用中常常需要做动态/异步加载。要让它显示图片,实际上主要是设置SpriteFrame。 let path = ‘resources/test.png’; let sp = node.getComponent(cc.Sprite); if … 阅读更多 »CocosCreator开发笔记(21)-cc.Sprite的动态加载和释放
不当用法 有时为了判断某个值有效,JS新手会写这种臃肿代码: if (data != null && typeof(data) != undefined && data != ”) { … } 为避免这种情况,首先要了解undefined和null的区别。 什么是undefined和null … 阅读更多 »CocosCreator开发笔记(20)-如何判断undefined和null
上篇文章介绍了如何用gulp-imagemin插件来自动批量压缩CocosCreator项目的图片资源,imagemin虽然使用方便且免费,但缺点也很明显,就是耗时长而且压缩比不高(压缩后大概比原图小10-15%)。 其实还有一个更牛的压缩神器,叫 tinypng(官网: https://tinyp… 阅读更多 »CocosCreator和gulp-使用tinypng批量压缩图片
在游戏开发中,打包前进行图片压缩是必需工作,gulp内置了很多构建、优化插件,例如:图片压缩、js文件合并等等,这样,在游戏构建过程中,只需一个命令,就可以自动做完所有这些工作。 gulp简介 gulp的目标是用自动化构建工具来增强你的工作流程。 易于使用 通过代码优于配置的策略,gulp让简单的任… 阅读更多 »CocosCreator和gulp-使用gulp-imagemin压缩图片
Creator的的资源管理 CocosCreator会为每个资源文件生成一个唯一ID,称为uuid(通用唯一标识符,Universally Unique Identifier)。Creator引擎通过uuid来引用文件,而不再是 路径 + 文件名 的简单 方式,只要uuid不变,就可以在Creato… 阅读更多 »CocosCreator开发笔记(19)-meta文件使用总结
CocosCreator目前支持的Animation回调事件有: play : 开始播放时 stop : 停止播放时 pause : 暂停播放时 resume : 恢复播放时 lastframe : 假如动画循环次数大于 1,当动画播放到最后一帧时 finished : 动画播放完成时 首先确保节点… 阅读更多 »CocosCreator开发笔记(18)-如何处理Animation动画的结束回调
Cocos Creator 内置了一个简单易用的碰撞检测系统,支持 圆形,矩形 以及 多边形 相互间的碰撞检测。 碰撞系统接口 获取碰撞检测系统 let manager = cc.director.getCollisionManager(); 默认碰撞检测系统是禁用的,使用时需要以下方法开启碰撞检测… 阅读更多 »CocosCreator开发笔记(17)-碰撞检测系统的常用接口
本文主要说明在CocosCreator中如何动态加载Sprite、Prefab、Animation、Spine等资源。 动态加载图片 let self = this; cc.loader.loadRes(url, cc.SpriteFrame, function(err, spFrame) { if… 阅读更多 »CocosCreator开发笔记(16)-如何动态加载资源
CocosCreator提供了很方便的Spine动画接口,我们常常会在播放Spine动画完成后做一些处理,这就需要知道Spine动画播放完成的准确时机。 有两种注册结束回调的方法,一是使用 setCompleteListener,它是针对单个动画的,一般使用这个就可以了。示例代码如下: playSp… 阅读更多 »CocosCreator开发笔记(15)-如何处理Spine动画的结束回调
游戏的弹出窗口常常会要求窗口背景置灰,并且屏蔽非窗口区域的输入事件。在Cocos引擎以前版本中,通常做法是动态创建一个置灰Layer,并屏蔽所有输入事件来实现。而CocosCreator中内置了一个BlockInputEvents组件,不需添加任何代码,很轻松实现了这个功能。 使用方法 1、在窗口根… 阅读更多 »CocosCreator开发笔记(14)-如何增加置灰层
Cocos Creator的 cc.Node 有一套完整的事件监听和分发机制。在这套机制之上,引擎提供了一些基础的节点相关的系统事件。 Cocos Creator支持的系统事件包含鼠标、触摸、键盘、重力传感等四种,其中鼠标和触摸事件是被直接触发在相关节点上的,所以称为节点系统事件。与之对应的,键盘和… 阅读更多 »CocosCreator开发笔记(13)-如何处理鼠标事件
Cocos Creator的 cc.Node 有一套完整的事件监听和分发机制。在这套机制之上,引擎提供了一些基础的节点相关的系统事件。 Cocos Creator支持的系统事件包含鼠标、触摸、键盘、重力传感等四种,其中鼠标和触摸事件是被直接触发在相关节点上的,所以称为节点系统事件。与之对应的,键盘和… 阅读更多 »CocosCreator开发笔记(12)-如何处理键盘事件
在CocosCreator官方文档中没有提供跨平台的通用写文件接口。如果运行环境是浏览器,有一个替代方案可以实现把内容保存到文件,效果相当于下载了一个文件到本地。代码如下: // 保存字符串内容到文件。 // 效果相当于从浏览器下载了一个文件到本地。 // textToWrite – 要保存的文件内… 阅读更多 »CocosCreator开发笔记(11)-如何保存文件