查看: 8110|回复: 12

[有事请教] 求一个提前加载图片的插件

[复制链接]
梦石
0
星屑
230
在线时间
21 小时
注册时间
2019-1-12
回帖
14
发表于 2019-1-15 15:00:08 | 显示全部楼层 |阅读模式

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

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

×
求一个进入游戏前吧所有图片提前隐藏加载一遍的插件

无限の剣制

梦石
0
星屑
10445
在线时间
5019 小时
注册时间
2013-2-28
回帖
4942

开拓者贵宾

发表于 2019-1-15 15:13:22 | 显示全部楼层
本帖最后由 VIPArcher 于 2019-1-15 15:14 编辑

MV是有预加载图片的方法的,你可以写个插件里面写上你需要预加载的素材。
  1. (function() {
  2.     var _Scene_Boot_loadSystemImages = Scene_Boot.loadSystemImages;
  3.     Scene_Boot.loadSystemImages = function() {
  4.         _Scene_Boot_loadSystemImages.call(this);
  5.         ImageManager.requestBitmap('img/system/','你的素材文件名');
  6.         // 继续添加其他的缓存图片
  7.     };
  8. })();
复制代码

顺便1.5版本以前好像不叫这个名字可能是 ImageManager.loadBitmap('img/titles2/','你的素材文件名') 之类的吧。具体我也没用1.5以前的源码(X

评分

参与人数 1赞 +1 收起 理由
白嫩白嫩的 + 1 塞糖

查看全部评分

回复

使用道具 举报

梦石
0
星屑
230
在线时间
21 小时
注册时间
2019-1-12
回帖
14
 楼主| 发表于 2019-1-15 15:30:44 | 显示全部楼层
谢谢我试试
回复

使用道具 举报

梦石
0
星屑
12161
在线时间
4435 小时
注册时间
2014-4-11
回帖
5616

开拓者

发表于 2019-1-15 15:44:57 | 显示全部楼层
还是建议使用
//首先BITMAP获取图片
var bitmap = ImageManager.loadFace(actor.faceName());
  bitmap.addLoadListener(function() {

//BITMAP有图片后,才会执行这里的内容
    要执行的内容

    }.bind(this));

在要读取的时候执行
回复

使用道具 举报

梦石
0
星屑
3372
在线时间
1123 小时
注册时间
2015-12-24
回帖
236
发表于 2019-1-15 18:54:51 | 显示全部楼层
借帖一问,有方法可以直接选择文件夹让MV预加载整个文件夹的图片吗?
目前找到的都是要指定图片档名的,但图片量大的时候(一千多个)一个一个打上去太累人了...
回复

使用道具 举报

梦石
0
星屑
383
在线时间
22 小时
注册时间
2017-1-14
回帖
15
发表于 2019-1-15 23:07:37 | 显示全部楼层
脚本 可以设置吧?
回复

使用道具 举报

梦石
0
星屑
4716
在线时间
501 小时
注册时间
2013-12-7
回帖
333

极短28参与极短27参与

发表于 2019-1-16 14:13:54 | 显示全部楼层
本帖最后由 ekmomo 于 2019-1-16 14:20 编辑
  1. (function (){
  2.         var path = require('path').dirname(process.mainModule.filename) + "\\img";
  3.         var fs = require("fs");
  4.         var folders = fs.readdirSync(path);
  5.         folders.forEach(function(folder){
  6.                 var imgs = fs.readdirSync(path + "\" + folder);
  7.                 imgs.forEach(function(img){
  8.                         if (img.indexOf(".png") !== -1){
  9.                                 ImageManager.reserveBitmap("img/" + folder + "/", img.replace(".png",""));
  10.                         }
  11.                 }, this);
  12.         }, this);
  13. })();
复制代码

插件点此下载 preloadimg.zip (476 Bytes, 下载次数: 136)

部署为网页的话拿不到FS模块,可以自己稍微改下生成一个json文件,然后加载文件列表就好了。
回复

使用道具 举报

梦石
0
星屑
230
在线时间
21 小时
注册时间
2019-1-12
回帖
14
 楼主| 发表于 2019-2-2 16:58:27 | 显示全部楼层
ekmomo 发表于 2019-1-16 14:13
插件点此下载

部署为网页的话拿不到FS模块,可以自己稍微改下生成一个json文件,然后加载文件列表就好了 ...

这个怎么用朋友
回复

使用道具 举报

梦石
0
星屑
230
在线时间
21 小时
注册时间
2019-1-12
回帖
14
 楼主| 发表于 2019-2-2 18:00:49 | 显示全部楼层
yang1zhi 发表于 2019-1-15 15:44
还是建议使用
//首先BITMAP获取图片
var bitmap = ImageManager.loadFace(actor.faceName());

怎么用老铁
回复

使用道具 举报

梦石
0
星屑
12161
在线时间
4435 小时
注册时间
2014-4-11
回帖
5616

开拓者

发表于 2019-2-2 20:40:06 | 显示全部楼层

平时,不都是
var bitmap = ImageManager.loadFace(actor.faceName());
类似这样的来读取图片的吗
此时图片要是没有预存,就是空的了。
要先预存一下,下次才会有。
这个时候
在下方添加这样一段
bitmap是你存图片的那个变量
bitmap.addLoadListener(function() {

//BITMAP有图片后,才会执行这里的内容
    要执行的内容

    }.bind(this));

把打印图片写到这个中间,那他必然是在完成预存图片后,再打印图片
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部