查看: 1093|回复: 4

[交流讨论] 安全的图片加载类(更新)

[复制链接]
梦石
0
星屑
1190
在线时间
57 小时
注册时间
2024-4-14
回帖
5
发表于 2025-5-29 19:06:04 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
本帖最后由 滑稽大帝 于 2025-5-31 10:48 编辑

SafeSpriteLoader.zip (2.14 KB, 下载次数: 8)
SafeSpriteLoader_Ex.zip (2.56 KB, 下载次数: 6)
由于ImageManager加载不存在的图片会直接暂停场景,而且每个图片都是被画到canvas上,该类解决这两个问题
1.加载图片失败不会影响游戏运行
2.直接将Image载入baseTexture,省去再次转移到canvas上的问题
额外内容
1.内置baseTextureCacha,并根据命中率自动调整容量目前设置纹理容量张数为【8,16,32】
2.内置等待回调队列,只有图片加载完才会给Texture.baseTexture赋值,能保证图片一定会显示

EX内容
考虑到每次new PIXI.Sprite都会自动创建BaseTexture,EX扩展里设计了BaseTexturePool,
如果有新的Sprite需要加载,会将它的BaseTexture载入池中,之后图片加载成功就不需要创建新的BaseTexture

2025.5.31
EX扩展修改,当把Sprite自动创建的BaseTexture添加进池,可能出现其他任意位置对该baseTexture重新加载的纹理比原先小,会导致Sprite.Texture.frame设置报错,
因此入池之前,解除baseTexture的一切事件


使用建议:由于该加载是异步执行,可能出现连续两次加载,第二次加载比第一次先加载完(可能第二次图片比第一次图片小),这时候需要使用者处理好同步问题

如在使用中有其他报错或建议,评论区留言

评分

参与人数 3星屑 +500 赞 +2 收起 理由
fux2 + 500 精品文章
余杭 + 1 塞糖
马铃薯条 + 1

查看全部评分

梦石
0
星屑
5343
在线时间
683 小时
注册时间
2016-2-11
回帖
120
发表于 2025-5-30 19:14:06 | 显示全部楼层
完全看不懂
回复

使用道具 举报

老黄鸡

梦石
4
星屑
45692
在线时间
7947 小时
注册时间
2009-7-6
回帖
13335

MZ评测员RM创作大赛01组委会开拓者贵宾

发表于 2025-5-30 23:03:31 | 显示全部楼层
以前也因为某些情况搓过,后来遗失了,现在又可以抄了()
RGDirect - DirectX驱动的RGSS,点我了解.
(排满,暂停)RM全系列成套系统定制请联系QQ1213237796
不接受对其他插件维护的委托
回复 1 0

使用道具 举报

梦石
0
星屑
419
在线时间
46 小时
注册时间
2023-9-22
回帖
6
发表于 2025-7-3 17:47:40 | 显示全部楼层
这个插件好像没有想到太好的应用场景,图片加载失败的情况一般都会经过测试阶段修正,而且看插件代码是两个额外的静态类,也不会对mv本身的图片加载做出检测,例如头像半身像这类的图片缺失还是会报错
回复

使用道具 举报

梦石
0
星屑
1190
在线时间
57 小时
注册时间
2024-4-14
回帖
5
 楼主| 发表于 2025-7-7 15:55:20 | 显示全部楼层
lymv 发表于 2025-7-3 17:47
这个插件好像没有想到太好的应用场景,图片加载失败的情况一般都会经过测试阶段修正,而且看插件代码是两个 ...

因为我不想干预原来的ImageManager,这个提供给其他写脚本的想设计图片缺失也能正常运行游戏的人使用
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部