设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 281|回复: 4
打印 上一主题 下一主题

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

[复制链接]

Lv2.观梦者

梦石
0
星屑
911
在线时间
38 小时
注册时间
2024-4-14
帖子
9
跳转到指定楼层
1
发表于 2025-5-29 19:06:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

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

SafeSpriteLoader.zip (2.14 KB, 下载次数: 7)
SafeSpriteLoader_Ex.zip (2.56 KB, 下载次数: 5)
由于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

查看全部评分

Lv3.寻梦者

梦石
0
星屑
4511
在线时间
605 小时
注册时间
2016-2-11
帖子
117
2
发表于 2025-5-30 19:14:06 | 只看该作者
完全看不懂
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (管理员)

老黄鸡

梦石
0
星屑
41860
在线时间
7648 小时
注册时间
2009-7-6
帖子
13525

开拓者贵宾

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

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
126
在线时间
20 小时
注册时间
2023-9-22
帖子
2
4
发表于 5 天前 | 只看该作者
这个插件好像没有想到太好的应用场景,图片加载失败的情况一般都会经过测试阶段修正,而且看插件代码是两个额外的静态类,也不会对mv本身的图片加载做出检测,例如头像半身像这类的图片缺失还是会报错
回复 支持 反对

使用道具 举报

Lv2.观梦者

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

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

使用道具 举报

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

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2025-7-8 06:18

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表