Cocos Creator 游戏开发常见问题(001)
- 1、creator 电脑双屏问题能不能修一下
- 2、Label 下一帧才刷新大小 怎么办
- 3、CocosCreator调试预览的时候,如何设置不显示引擎信息
- 4、DragonBones骨骼动画(texture)会有黑边
- 5、修改引擎js源码怎么生效
- 6、tileLayer.getTiledTileAt为何无法获得某一个矩阵坐标的tile。返回都是undefined。
- 7、求官方手册离线版
- 8、发现个大问题,iPhone6-iOS12小游戏平台息屏再唤醒后卡死
- 9、物理系统速度被限制
- 10、Animation有没有方法恢复到当前动画的初始状态
- 11、creator2.0.2绘制子域排行榜黑屏
- 12、AudioSource有没有结束后的回调
- 13、Video play视频显示黑屏
- 14、labelOutline组件可以实现描边 , 但是如何设置描边在X,Y轴上的偏移量呢
- 15、 定制引擎报 JavaScript heap out of memory 内存不足解决方法
- 16、求助creator中 Simulator如何自定义机型
- 17、 2.1.1internal文件夹什么作用?
- 18、 web mobile项目在手机浏览器上调用windows.open(url);无法正常打开新窗体。
个人github
1、creator 电脑双屏问题能不能修一下
问题现场 && 解决方案:
删除项目中的local文件夹的layout.windows.json可以解决问题。
2、Label 下一帧才刷新大小 怎么办
问题现场 && 解决方案:
这里由于 label 中_updateRenderData 处理开销过大,导致没办法设置 string 的时候去触发更新,size 只能在渲染的时候才可以获取到正确的 size。目前可以自行在设置 label 所有属性后在执行一次 label._updateRenderData(true); 就能带当帧获取大小。
3、CocosCreator调试预览的时候,如何设置不显示引擎信息
问题现场 && 解决方案:
在web预览时可以点击ShowFPS按钮开关调试信息的显隐。
非web 预览时 可以在代码中写入cc.debug.setDisplayStats(false); 这样就会隐藏调试文本。
4、DragonBones骨骼动画(texture)会有黑边
问题现场 && 解决方案:
5、修改引擎js源码怎么生效
问题现场 && 解决方案:
6、tileLayer.getTiledTileAt为何无法获得某一个矩阵坐标的tile。返回都是undefined。
问题现场 && 解决方案:
目前tileMap 的getTiledTileAt会判断在指定序列上_tiledTiles中是否已有tiledtile,有就输出,没有的话依据是否创建新的tiledtile(forceCreate)参数,执行相关代码。
你的项目中本来就没创建过tiledtile,所以这个逻辑在你项目上表现是正常的。
你可以通过setTiledTileAt (x, y, tiledTile)先创建一个,或者参考getTiledTileAt中的逻辑创建新的tiledtile,那么之后你getTiledTileAt()传false就有东西了。
7、求官方手册离线版
问题现场 && 解决方案:
8、发现个大问题,iPhone6-iOS12小游戏平台息屏再唤醒后卡死
问题现场 && 解决方案:
引擎源码中找到下面代码,并屏蔽掉,可以解决此崩溃,这个标志是微信小游戏提供的,只对微信小游戏问题生效。
//opts[“preserveDrawingBuffer”] = true;
9、物理系统速度被限制
问题现场 && 解决方案:
因为box2d中限制了速度变化 可以在engine中的box2d.js下搜索
b2_maxTranslation的定义
然后编译引擎即可。
10、Animation有没有方法恢复到当前动画的初始状态
问题现场 && 解决方案:
CCAnimation的使用中,用户可以指定动画名称和动画时间,然后传入play(name.time),这样可以让动画在指定时间播放。
如果只是想让动画跳到某一帧但是不想播放,可以这样使用。
参考代码:
var state = this.anima.getAnimationState("test");
var curves = state.curves;
var info = state.getWrappedInfo(0.3);
for (var i = 0, len = curves.length; i < len; i++) {
var curve = curves[i];
curve.sample(info.time, info.ratio, this);
}
恢复播放就用上面的play方法。
恢复到初始状态的话你传入0.01差不多就够用了。
11、creator2.0.2绘制子域排行榜黑屏
问题现场 && 解决方案:
12、AudioSource有没有结束后的回调
问题现场 && 解决方案:
参考这样的方案,由于audio目前没有提供设置播放结束回调的接口,需要开发者手动添加。
13、Video play视频显示黑屏
问题现场 && 解决方案:
这个问题属于Html只支持H.264编码格式的MP4。
参考文章:
https://blog.csdn.net/keji_123/article/details/77717849
方案:
使用格式工厂输出AVC(H264)编码格式的MP4视频。
14、labelOutline组件可以实现描边 , 但是如何设置描边在X,Y轴上的偏移量呢
[问题现场]((https://forum.cocos.com/t/topic/73511?u=337031709) && 解决方案:
https://github.com/cocos-creator/engine/blob/v2.0.8-release/cocos2d/core/renderer/utils/label/ttf.js#L262
这里的startPosition是描边的位置,可以通过控制这个值来让描边产生偏移。需要自己定制引擎。
15、 定制引擎报 JavaScript heap out of memory 内存不足解决方法
[问题现场]((https://forum.cocos.com/t/javascript-heap-out-of-memory/74634/10?u=337031709) && 解决方案:
原因是:v8在编译的时候,对CPU和内存的需求比较大,当文件数量很多的时候,可能会出现内存不足的情况
目前有一个有效方案是最后build的时候这样输入:
gulp build --max-old-space-size=8192
后面这句代码可以修改v8引擎的内存上限,
类似的方案还有:
https://www.cnblogs.com/liugang-vip/p/6857595.html
16、求助creator中 Simulator如何自定义机型
[问题现场]((https://forum.cocos.com/t/creator-simulator/76207?u=337031709) && 解决方案:
在Cocos Creator设置界面可以设置自定义模拟器分辨率。
17、 2.1.1internal文件夹什么作用?
[问题现场]((https://forum.cocos.com/t/ccc-2-1-1-internal/76886?u=337031709) && 解决方案:
internal 存储的是引擎内置资源。
18、 web mobile项目在手机浏览器上调用windows.open(url);无法正常打开新窗体。
解决方案:
windows.open 需要用户触发操作才能打开新窗体。