做h5游戏的话,怎样加载资源比较合理?

如果我要出H5版本的游戏, 资源加载和原生的方式应该是不一样的, 比如一个地图有20M, 原生的直接加载就行, 如果是H5的版本, 直接加载一个20M 地图,会卡在加载界面很久 (需要下载),这个地图是放在游戏进入直接先下载比较好? 还是需要再加载好, 如果需要再加载,貌似现在没法显示进度, cc.director.loadScane 只有加载完有个回调,并没有过程回调。。

你的地图为什么会这么大???难道一整张贴图

大的背景也可以拆成 N 个小背景,然后拼出一张完整的背景出来吧?

cc.director.preloadScene

大地图光数据有1-2M,加上使用的地表贴图,地物贴图,20M算是小的了。

cc.director.preloadScene 貌似也看不到进度。

对于 HTML5 游戏来说,光地图 20 mb 很大,当然这是设计的层面,我们就不多讨论。

https://tinypng.com/

这个网站可以帮助你压缩 png 图片,jpg 图片也可以用 photoshop 导出 web 可用格式来压缩。

除此之外就是不要一次性加载一整张地图,只加载一部分,在地图扩展的过程中动态去加载其它的部分,这个需要比较好得进行资源分割,还有动态加载的逻辑也是需要去自习推敲的

1赞

不要做进度了,直接延时加载比较友好,勾选场景的“延时加载资源” 或者手动处理,然后在进入场景后可能一开始是黑的地图,然后慢慢加载起来

嗯,这个优化的方式可以有,做法上和原生的还是有些差别了。
原来想是做一个游戏,直接通过ccc输出到不同平台就可以,实际情况还是需要针对不同平台做差异化的逻辑处理。

还是说回来,资源大小可以优化,但再优化还是希望能有个进度显示的接口,让玩家知道还要等多久。

看到一个 cc.loader.onProgress , 重写这个函数,是否就可以知道全局的加载进度?

嗯嗯 我在loadscene的时候是可以使用的

延时加载能不能优先加载active为true的节点然后再继续加载其它节点 这样会方便很多 现在是立刻就进去了往往会看到很多黑图片 体验不好所以一直都没开启过

实际上加载的过程都是异步的,至于哪个文件会先被下载成功并不一定,不知道有没有什么建议优化这个过程的体验?

有些游戏会用 place holder,不过 place holder 往往都比较丑。。。

我也就这么一想 具体情况可能跟我相差万里
能不能先判断canvas同级节点与canvas下第一层子节点中active为true的节点内容 先将这个节点中引用的资源下载完然后加载完再进入场景 现在进入场景之后再下载 不如在进入之前先把相当于第一眼看到的这些加载好剩下的再在进入场景后继续加载 这样一开始不需要进入玩家视野的都尽可能active为false 看起来就好像无缝衔接 感觉这样会比一上来就进去然后全部刚开始加载好一些
或者更定制一些 让开发者选择一下哪些节点 加载完这些节点所需的资源后再进入场景 剩下的进入之后继续加载
不知道我这么想的话是不是有些过份哈··············:joy: