-
Creator 版本:2.2.0
-
目标平台: Web / iOS / Android / 模拟器
-
详细报错信息,包含调用堆栈:浏览器可以跑60帧, 模拟器只有25帧,
-
编辑器操作系统 :WINDOWS 10 64位
-
额外线索:动画大概20个 人物动画 5个 每个动画帧上有10图元
动画设定 20帧
动画格式是自定义的 按帧播放,每帧上有10个图元左右,
模拟器的 DC比浏览器的多 , 都是同一套代码 为何有此差异, 是否是这里影响了效率!
动画用的Spine么?
方便的话给个demo看下,dc虽然比浏览器要高一些,但是39的dc也不算高。可是你的GameLogic就很奇怪了,游戏逻辑居然一帧要63ms。方便的话给个demo工程,我这边查一下
自定义的格式 按图元拼成帧 然后按时间切换帧显示
for (let i = 0; i < act.actFrame.length; i++) {
this.actFrames[i] = new cc.Node("frame_node" + i);
for (let j = j_start; j < act.actFrame[i].actSprite.length; j++) {
let sprite_node = new cc.Node(“sprite_node_” + j);
sprite_node.parent = this._actFrames[i];
let sprite = sprite_node.addComponent(cc.Sprite);
let actSprite = act.actFrame[i].actSprite[j];
sprite.spriteFrame = this._actModules[actSprite.moduleID];
sprite.node.x = actSprite.x * SCALE;
sprite.node.y = -actSprite.y * SCALE;
这是 把图元拼接成 帧
this._actFrames[this._currFrameID_show].parent = null;
if (this._currFrameID >= 0 && this._currFrameID != actAction[index].frameId) {
this._currFrameID = actAction[index].frameId;
this._actFrames[this._currFrameID].parent = this.node;
this._currFrameID_show = this._currFrameID;
}
if (this._actFrames[this._currFrameID_show].parent == null) {
this._actFrames[this._currFrameID_show].parent = this.node;
}
这是 按时间切换帧
怎么发DEMO?
建议你把动画换成Spine,这样原生下性能会高很多。你这样子每一帧都会进行很多的计算
每帧都是直接渲染而已 , 在载入的时候就已经把图元加到帧NODE上了 !
this._actFrames[this._currFrameID_show].parent = this.node;
this._actFrames[this._currFrameID_show].parent = null;
这些都是啊,还有频繁的enable和onenable的开销
同时虽然你是设置到parent上面,坐标是提前设置到的坐标,但是这个坐标是局部坐标。引擎还要做很多运算。不是说前面你去new的时候就完成了所有运算,后面就只是gpu的渲染
这个是测试
浏览器下 帧率很高啊!
这是老项目移植, 动画有300个 地图有100个
现在修改动画的画要很长时间,所以 只能用老动画,老地图, 没有修改动画的人力资源
windows上的模拟器预览确实是这样子,我们排查一下原因。后续有结果后回复你
打包APK上 android手机 也是一样的卡!
上手机看了一下
ios 的game logic :48 FPS:18
android 的game logic :80 FPS:11
你之前给的demo,我这边在iOS和Android上都没法跑起来,没法验证。方便的话重新给个demo看下
我新做了个包 ,可以上android手机
链接: https://pan.baidu.com/s/1KQTvcqg-iHnSWBM7hv-tAw 提取码: j3ku
在打包的时候需要修改一下,
比如C++文件需要注销掉声音
另外android studio里的归道文件也需要修改
gradle设置里这个地方需要修改!
替换如下
也可以上IOS手机,
当前的NPC数量不多,我上android手机看过,大概 8帧,
用COCOS CREATOR 的模拟器 大概3帧






