Cocos Creator 游戏开发常见问题(001)


在这里插入图片描述
个人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)会有黑边

问题现场 && 解决方案:

https://forum.cocos.com/t/dragonbones/70312/7?u=337031709

5、修改引擎js源码怎么生效

问题现场 && 解决方案:

https://docs.cocos.com/creator/manual/zh/advanced-topics/engine-customization.html#1-定制-javascript-引擎

6、tileLayer.getTiledTileAt为何无法获得某一个矩阵坐标的tile。返回都是undefined。

问题现场 && 解决方案:

目前tileMap 的getTiledTileAt会判断在指定序列上_tiledTiles中是否已有tiledtile,有就输出,没有的话依据是否创建新的tiledtile(forceCreate)参数,执行相关代码。
你的项目中本来就没创建过tiledtile,所以这个逻辑在你项目上表现是正常的。
你可以通过setTiledTileAt (x, y, tiledTile)先创建一个,或者参考getTiledTileAt中的逻辑创建新的tiledtile,那么之后你getTiledTileAt()传false就有东西了。

7、求官方手册离线版

问题现场 && 解决方案:

https://github.com/cocos-creator/creator-docs

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绘制子域排行榜黑屏

问题现场 && 解决方案:

https://forum.cocos.com/t/creator2-0-2/67943/14?u=337031709

12、AudioSource有没有结束后的回调

问题现场 && 解决方案:

参考这样的方案,由于audio目前没有提供设置播放结束回调的接口,需要开发者手动添加。https://forum.cocos.com/t/creator2-0-2/67943/14?u=337031709

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 需要用户触发操作才能打开新窗体。

猜你喜欢

转载自blog.csdn.net/qq_34121784/article/details/89849148