Project1

标题: 音频图片资源文件压缩包加载插件 [打印本页]

作者: utunnels    时间: 2024-9-19 15:24
标题: 音频图片资源文件压缩包加载插件
本帖最后由 utunnels 于 2024-9-24 17:19 编辑

当时是给itch上的小游戏做的,支持把图片和声音打包成一个zip文件一次下载。
对大型游戏可能没有什么用,因为下载解包时间太长了,每次进游戏都要解包。
下载地址,留给需要的人吧:https://utstudio.itch.io/zipresourceloader

简单说明下:
插件基本上是即插即用的,只有一个参数就是压缩文件的名称,可以随便改(只要服务器支持的扩展名就行)
游戏发布之前,把img和audio文件夹打包到一个zip文件里,原来的文件可以删除。
注意:只能打包图像和声音文件,其余文件不能放进压缩包
img/system/Loading.png 这个文件要放在压缩包外面,要不然最初加载的时候没法显示Loading...

ZipResourceLoader.zip (12.17 KB, 下载次数: 4)
作者: acips    时间: 2024-9-20 18:04
建议来个仅打包不压缩的版本,素材多了移动不方便,但是压缩会导致游戏变卡
作者: play337    时间: 2024-9-20 21:27
本帖最后由 play337 于 2024-9-20 21:29 编辑



01.试了好几遍都是这个错误....

02.我把 ZIP.js 放到 plugins 里面 再改了 插件路径之后
变这个错误...

Uncaught (in promise) TypeError: Cannot read property 'arrayBuffer' of undefined
    at ZipLoader.load (zip-loader.js:357)


作者: utunnels    时间: 2024-9-21 08:48
play337 发表于 2024-9-20 21:27
01.试了好几遍都是这个错误....

02.我把 ZIP.js 放到 plugins 里面 再改了 插件路径之后


01
zip-loader.js是放进libs里面了吗,和pixi之类的js在一起?


我看看要不改一下,把两个文件合并了算了,分开安装会造成不必要的麻烦
作者: utunnels    时间: 2024-9-21 11:03
我更新了一下,现在只用一个js文件就可以了
作者: play337    时间: 2024-9-22 17:47
一看就很喜欢这个插件. 马上就来试试...
01. 把插件放到 PLUGINS
02. 打包 IMG 和 AUDIO 变成 RESOURCE.ZIP
03. 删除 IMG 和 AUDIO
04. 把 LOADING.PNG 放在 ZIP同一层目录
05. 运行

loading zip image...
ZipResourceLoader.js:543 resources.zip
Loading.png:1 Failed to load resource: net::ERR_FILE_NOT_FOUND
rpg_managers.js:1949 Error: Failed to execute 'drawImage' on 'CanvasRenderingContext2D': The HTMLImageElement provided is in the 'broken' state.
    at Function.Graphics._paintUpperCanvas (rpg_core.js:2569)
    at Function.Graphics.updateLoading (rpg_core.js:1969)
    at Function.SceneManager.onSceneLoading (rpg_managers.js:2046)
    at Function.SceneManager.renderScene (rpg_managers.js:2033)
    at Function.SceneManager.updateMain (rpg_managers.js:1987)
    at Function.SceneManager.update (rpg_managers.js:1907)
SceneManager.catchException @ rpg_managers.js:1949
ZipResourceLoader.js:553 audio/
ZipResourceLoader.js:553 audio/bgm/
ZipResourceLoader.js:553 audio/bgs/
ZipResourceLoader.js:553 audio/me/
ZipResourceLoader.js:553 audio/se/
ZipResourceLoader.js:553 audio/se/Cancel2.ogg
ZipResourceLoader.js:553 audio/se/Item3.ogg
ZipResourceLoader.js:553 audio/se/Move1.ogg
ZipResourceLoader.js:553 audio/se/Slash1.m4a
ZipResourceLoader.js:553 audio/se/Slash1.ogg
ZipResourceLoader.js:553 audio/se/Water1.m4a
ZipResourceLoader.js:553 audio/se/Water1.ogg
ZipResourceLoader.js:553 img/
ZipResourceLoader.js:553 img/animations/
ZipResourceLoader.js:553 img/battlebacks1/
ZipResourceLoader.js:553 img/battlebacks2/
ZipResourceLoader.js:553 img/characters/
ZipResourceLoader.js:553 img/characters/58585858.png
ZipResourceLoader.js:553 img/characters/Actor1.png
ZipResourceLoader.js:553 img/cursors/
ZipResourceLoader.js:553 img/cursors/_index.json
ZipResourceLoader.js:553 img/enemies/
ZipResourceLoader.js:553 img/faces/
ZipResourceLoader.js:553 img/faces/Actor1.png
ZipResourceLoader.js:553 img/parallaxes/
ZipResourceLoader.js:553 img/pictures/
ZipResourceLoader.js:553 img/pictures/Holdbackground.png
ZipResourceLoader.js:553 img/pictures/Holdcursor.png
ZipResourceLoader.js:553 img/pictures/Holdfill.png
ZipResourceLoader.js:553 img/pictures/Holdforeground.png
ZipResourceLoader.js:553 img/pictures/Holdlifetime.png
ZipResourceLoader.js:553 img/sv_actors/
ZipResourceLoader.js:553 img/sv_enemies/
ZipResourceLoader.js:553 img/system/
ZipResourceLoader.js:553 img/system/Balloon.png
ZipResourceLoader.js:553 img/system/ButtonSet.png
ZipResourceLoader.js:553 img/system/Damage.png
ZipResourceLoader.js:553 img/system/GameOver.png
ZipResourceLoader.js:553 img/system/IconSet.png
ZipResourceLoader.js:553 img/system/Loading.png
ZipResourceLoader.js:553 img/system/Shadow1.png
ZipResourceLoader.js:553 img/system/Shadow2.png
ZipResourceLoader.js:553 img/system/States.png
ZipResourceLoader.js:553 img/system/Weapons1.png
ZipResourceLoader.js:553 img/system/Weapons2.png
ZipResourceLoader.js:553 img/system/Weapons3.png
ZipResourceLoader.js:553 img/system/Window.png
ZipResourceLoader.js:553 img/tilesets/
ZipResourceLoader.js:553 img/tilesets/Outside_A1.png
ZipResourceLoader.js:553 img/tilesets/Outside_A1.txt
ZipResourceLoader.js:553 img/tilesets/Outside_A2.png
ZipResourceLoader.js:553 img/tilesets/Outside_A2.txt
ZipResourceLoader.js:553 img/tilesets/Outside_A5.png
ZipResourceLoader.js:553 img/tilesets/Outside_B.png
ZipResourceLoader.js:553 img/tilesets/Outside_B.txt
ZipResourceLoader.js:553 img/titles1/
ZipResourceLoader.js:553 img/titles2/

哭了..........
作者: utunnels    时间: 2024-9-22 19:12
Loading.png要放在原来的位置上,所以img/system不能全删了
作者: play337    时间: 2024-9-22 21:58
本帖最后由 play337 于 2024-9-22 22:02 编辑

请问这个错误又是为什麽呢?

01.放在本地跑
rpg_managers.js:1919 Uncaught TypeError: Cannot read property 'removeEventListener' of null
SceneManager.onError @ rpg_managers.js:1919
rpg_managers.js:1920 chrome-extension://njgcanhfjdabfmnlmpmdedalocpafnhl/js/rpg_core.js 1632
SceneManager.onError @ rpg_managers.js:1920
rpg_core.js:1632 Uncaught TypeError: Cannot read property 'removeEventListener' of null
    at Bitmap._onError (rpg_core.js:1632)
    at XMLHttpRequest.requestFile.onerror (rpg_core.js:9229)
img/pictures/00-0menu001.rpgmvp:1 Failed to load resource: net::ERR_FILE_NOT_FOUND

02.放上网络跑

作者: utunnels    时间: 2024-9-22 22:42
play337 发表于 2024-9-22 21:58
请问这个错误又是为什麽呢?

01.放在本地跑

00-0menu001 这个文件存在吗?

这两个错误我没有遇到过,第二个F12看看控制台说啥?
作者: utunnels    时间: 2024-9-22 22:54
play337 发表于 2024-9-22 21:58
请问这个错误又是为什麽呢?

01.放在本地跑


我又测试了一下,发现这个解压缩的库比较挑文件。
用windows自带的压缩做出来的zip它不能完全解压。
用7zip做出来的zip文件就没问题。
作者: play337    时间: 2024-9-22 23:31
我问GPT大神.......
============================================================================
错误消息分析:
Uncaught TypeError: Cannot read property 'removeEventListener' of null:

这表示进程试图调用 removeEventListener 方法,但目标物件是 null,也就是说没有找到要移除事件的物件。
错误出现在 rpg_core.js 中与 Bitmap._onError 函数有关,这通常是处理图片加载错误的部分。
错误位置分析:

rpg_managers.js:1919 和 rpg_core.js:1632 的错误跟 Bitmap 物件的错误处理有关。当图片资源无法正常加载时,会触发错误事件,但此时进程可能没有正确处理 Bitmap 或 XMLHttpRequest 的回应,导致空的物件仍然被操作。
XMLHttpRequest.requestFile.onerror 表示一个 XMLHttpRequest 加载文档时失败,导致 onerror 事件触发,并且试图处理 removeEventListener,但这时候该对象可能已经是 null。
可能的原因:
图片资源丢失:

最常见的情况是某个图片资源无法正确加载,例如文档路径错误或图片文档遗失。RPG Maker MV 需要能够正确找到所有用到的资源文档。
事件绑定问题:

在图象加载错误时,事件处理函数未能正确绑定或移除,当加载失败后程序码仍然试图移除一个不存在的事件监听器,导致 null 的错误。
不完整的 XMLHttpRequest 回应:

由于某些原因(如网络问题、文档被阻止加载等),XMLHttpRequest 在请求图象文档时失败,导致未能正确触发错误处理函数。
作者: utunnels    时间: 2024-9-23 07:15
play337 发表于 2024-9-22 23:31
我问GPT大神.......
============================================================================
错误 ...

主要是我这里没法复现你这个问题,你能做个小的测试版发给我看看吗
作者: play337    时间: 2024-9-23 16:30
花了好多时间......放弃了.....感觉应该不只有跟一个插件冲突阿~ 我换了好几个项目.... 通通不同的错误

我投降了.....

只有最简单范例没有插件的会成功....

因为我随便一个项目都是100-200插件的.... 有些高手都自己写....我都是搜集各方插件....所以都是好不容易拼起来没冲突的....

所以..... 真可惜....不然这个插件真的是好东西....观念非常好的超棒插件.... 就整合不了任何一个项目... >_<
作者: utunnels    时间: 2024-9-23 17:05
play337 发表于 2024-9-23 16:30
花了好多时间......放弃了.....感觉应该不只有跟一个插件冲突阿~ 我换了好几个项目.... 通通不同的错误

我 ...

你要是方便的话可以弄一个有问题的我研究一下嘛。
毕竟这个东西自己测试很难想到是啥插件冲突了。
作者: play337    时间: 2024-9-23 20:48
我认真的做一个搞不懂的错误范例

https://www.mediafire.com/file/z ... est-mv-1.0.zip/file



01. 如果不用ZIP这个插件是可以正常运作没有问题的

02. 用了之后一玩就会有问题.应该是提取图片还是声音就出现问题了. 举一反三. 其他有用到声音或者图片的插件也都全部都有问题

03. 我几年前有测试一个也是把JS.HTML5打包在网络跑的.
就是一个HTML+JS+unzip.min.js+zlib_and_gzip.min.js 先解压你的HTML5游戏 然后仿真路径开始跑游戏.
也是会有一堆路径问题.还会造成游戏无法保存[你的还可以保存]

后来我也是测试到心力交瘁....然后我看到一个有经验的高手.他写了一个CACHE的插件 说可以完全没有这些问题
就是:Galv_ImageCache.js
他说音效档都会有问题.只用图片 而且指定路径....我测试过真的就没有任何其他问题了.只是没把声音也弄进CHCHE真的是可惜.因为那也会造成MV游戏LAGG...

过了几年刚好看到你的插件.又燃起一丝希望.....
作者: utunnels    时间: 2024-9-24 09:40
play337 发表于 2024-9-23 20:48
我认真的做一个搞不懂的错误范例

https://www.mediafire.com/file/zkmu5bfcple9n7b/zip-test-mv-1.0.zip/f ...

你这个是mz项目吧。
这个插件是MV版的,并没有在MZ上测试过。
作者: play337    时间: 2024-9-24 10:07
https://www.mediafire.com/file/p ... est-mv-1.1.zip/file

试试这一个....
作者: utunnels    时间: 2024-9-24 10:15
play337 发表于 2024-9-24 10:07
https://www.mediafire.com/file/p4oradml3xcjl0w/zip-test-mv-1.1.zip/file

试试这一个....

哦,其实文件都是MV的,这个问题应该不大,我看看是啥问题。
作者: utunnels    时间: 2024-9-24 10:21
本帖最后由 utunnels 于 2024-9-24 10:23 编辑
play337 发表于 2024-9-23 20:48
我认真的做一个搞不懂的错误范例

https://www.mediafire.com/file/z ... p-test-mv-1.0.zip/f ...


你这个zip里面我看并没有包含所有文件,我重新给你打包了一下可以进游戏了。
你的img/GoldMiner都没有打包进去。



作者: utunnels    时间: 2024-9-24 12:29
哦,我发现你说的问题了,我再测试下看看是啥原因。
作者: utunnels    时间: 2024-9-24 13:01
play337 发表于 2024-9-23 20:48
我认真的做一个搞不懂的错误范例

https://www.mediafire.com/file/zkmu5bfcple9n7b/zip-test-mv-1.0.zip/f ...

你试试首页的那个zip文件我更新了一下。应该是因为MV这个解码是破坏原数据的,所以应该每次都复制一个数据过去,而不是直接引用。
作者: play337    时间: 2024-9-24 13:39
感觉你好厉害.一下就修好了第一个BUG.... 那我结合多一点插件...你再看看1.2版本的BUG好吗?



https://www.mediafire.com/file/l ... est-mv-1.2.zip/file
作者: utunnels    时间: 2024-9-24 15:36
本帖最后由 utunnels 于 2024-9-24 15:37 编辑
play337 发表于 2024-9-24 13:39
感觉你好厉害.一下就修好了第一个BUG.... 那我结合多一点插件...你再看看1.2版本的BUG好吗?


看了下这个,问题比较奇怪,好像有问题的只有转场图片那里
把插件的615行删了应该能解决这个问题,不过目前还不知道具体原因。

类似的代码比如显示开始按钮那里就没有问题
作者: play337    时间: 2024-9-24 16:33
這個 1.3 的錯誤也可以解決嗎?



https://www.mediafire.com/file/p ... est-mv-1.3.zip/file
作者: utunnels    时间: 2024-9-24 16:52
本帖最后由 utunnels 于 2024-9-24 17:36 编辑
utunnels 发表于 2024-9-24 15:36
看了下这个,问题比较奇怪,好像有问题的只有转场图片那里
把插件的615行删了应该能解决这个问题,不过目 ...


关于1.2这个,你有用预先加载图片的插件吗?
因为我测试了一下就算是显示图片没有执行,只要事件里有显示图片就有可能会出现这个错误


----------------

不用回复了,我知道问题出在哪里了。
作者: utunnels    时间: 2024-9-24 17:21
play337 发表于 2024-9-24 16:33
這個 1.3 的錯誤也可以解決嗎?

更新了一下,
另外需要在加载前显示的文件可以不用打包




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1