Project1

标题: 求一个提前加载图片的插件 [打印本页]

作者: meng1991    时间: 2019-1-15 15:00
标题: 求一个提前加载图片的插件
求一个进入游戏前吧所有图片提前隐藏加载一遍的插件
作者: VIPArcher    时间: 2019-1-15 15:13
本帖最后由 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
作者: meng1991    时间: 2019-1-15 15:30
谢谢我试试
作者: yang1zhi    时间: 2019-1-15 15:44
还是建议使用
//首先BITMAP获取图片
var bitmap = ImageManager.loadFace(actor.faceName());
  bitmap.addLoadListener(function() {

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

    }.bind(this));

在要读取的时候执行
作者: 翠靈月    时间: 2019-1-15 18:54
借帖一问,有方法可以直接选择文件夹让MV预加载整个文件夹的图片吗?
目前找到的都是要指定图片档名的,但图片量大的时候(一千多个)一个一个打上去太累人了...
作者: ji654    时间: 2019-1-15 23:07
脚本 可以设置吧?
作者: ekmomo    时间: 2019-1-16 14:13
本帖最后由 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, 下载次数: 132)

部署为网页的话拿不到FS模块,可以自己稍微改下生成一个json文件,然后加载文件列表就好了。
作者: meng1991    时间: 2019-2-2 16:58
ekmomo 发表于 2019-1-16 14:13
插件点此下载

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

这个怎么用朋友

作者: meng1991    时间: 2019-2-2 18:00
yang1zhi 发表于 2019-1-15 15:44
还是建议使用
//首先BITMAP获取图片
var bitmap = ImageManager.loadFace(actor.faceName());

怎么用老铁

作者: yang1zhi    时间: 2019-2-2 20:40
meng1991 发表于 2019-2-2 18:00
怎么用老铁

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

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

    }.bind(this));

把打印图片写到这个中间,那他必然是在完成预存图片后,再打印图片
作者: dududu521    时间: 2020-12-31 17:16
是因为不提前加载图片会闪的关系吗?我的就是循环显示图片会开始闪几下,查了一下有人说是因为图片加载的关系。如果我们问题一样我也想弄个插件。
作者: xiamumomo    时间: 2020-12-31 17:49
https://forums.rpgmakerweb.com/i ... ersion-7-2-0.89867/(以前看到但是自己还没用过)
场景稳定器:7.2.0
作者:Chaucer

简介:

该插件旨在使场景之间的过渡更加平滑。当改变电视中的场景时,会有轻微的延迟尖峰
这在加载文件和渲染图像时发生,这在使用大图像或大量图像的游戏中更加明显。此插件将暂停游戏更新,直到场景中的所有元素都已加载并准备渲染为止。我在论坛上看到几个人提出了这个问题,所以我决定尝试提出一个解决方案,但是我比预期的要忙一些,所以花了我一些时间才能解决这个问题比我预期的要多。
特征 :
场景之间的过渡更加流畅。
加载动画和图片时等待场景稳定的选项。
作者: dududu521    时间: 2020-12-31 18:19
感谢亲,不过我点进去没有找不到下载……全英文真的对小白好辛苦……
我测试过了,我循环显示图片就算只有3张图片还是会在开头闪两下图片,应该不是量大的问题




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