Project1

标题: 地图精灵顺序的显示问题 [打印本页]

作者: 康姆图帕帕    时间: 2018-9-28 18:08
标题: 地图精灵顺序的显示问题
请问有人用过SRD_Hud Maker吗?
这个插件哪里都好,就是它创造的精灵(文本、图片、活动块)会使用单独的层级,结果,不管精灵的层级是多少,它的显示优先级都比图片还高....
我想在众多图片中穿插使用这些精灵,然而目前水平不够,实在看不懂它的排序和刷新方式,希望有大神能给指点一下

SRD_HUDMaker.zip

19.87 KB, 下载次数: 70


作者: 梦想家大魔王    时间: 2018-9-28 20:27
UI不就是应该显示在最顶层的吗?
作者: 康姆图帕帕    时间: 2018-9-28 21:31
梦想家大魔王 发表于 2018-9-28 20:27
UI不就是应该显示在最顶层的吗?

我说下想法吧,上次被吐槽不知道想干什么- -
HUDmaker几乎能和其他任何事件并行运行,因此理论上能用来制作即时更新的数据面板、小段动画,甚至是菜单界面。
现在卡在菜单上了,我的菜单是用图片+图片按钮做的,想让菜单的下层、上层都有HUD的精灵,但由于HUD的层级layer已经内定了,pictureID是无效的,因此菜单只能做到覆盖HUD的精灵或被它覆盖。

所以想求一些指点。

作者: Fan723    时间: 2018-9-28 23:45
_.Scene_Map_createMapNameWindow = Scene_Map.prototype.createMapNameWindow;
Scene_Map.prototype.createMapNameWindow = function() {
        _.Scene_Map_createMapNameWindow.apply(this, arguments);
        this.createHudLowerLayer();
};
你试试把这段换成:
_Scene_Map_createSpriteset = Scene_Map.prototype.createSpriteset;
Scene_Map.prototype.createSpriteset = function() {
    _Scene_Map_createSpriteset.apply(this, arguments);
    this.createHudLowerLayer();
};
作者: 康姆图帕帕    时间: 2018-9-29 00:13
Fan723 发表于 2018-9-28 23:45
_.Scene_Map_createMapNameWindow = Scene_Map.prototype.createMapNameWindow;
Scene_Map.prototype.creat ...

改成这个也没有效果:
_.Scene_Map_createSpriteset = Scene_Map.prototype.createSpriteset;
Scene_Map.prototype.createSpriteset = function() {
    _.Scene_Map_createSpriteset.apply(this, arguments);
    this.createHudLowerLayer();
};

我的思路是:菜单HUD精灵→菜单图片→HUD精灵→普通图片→地图及元件等(可忽略)

目前HUD精灵默认覆盖了普通图片,我能做到令菜单图片覆盖HUD精灵(Scene_Base.prototype.createWindowLayer = function()),然而这样,菜单上就不能添加任何HUD了
所以想求图片和HUD精灵互相覆盖的方法
作者: Fan723    时间: 2018-9-29 08:05
系统里面各图层的显示顺序是这样子的:
Scene_Map.prototype.createDisplayObjects = function() {
    this.createSpriteset();
    this.createMapNameWindow();
    this.createWindowLayer();
    this.createAllWindows();
};
你要在createWindowLayer之上只能选择createAllWindows了,
要想在显示图片之下就得用createSpriteset。
要不你干脆来个自定义顺序算了。
作者: 康姆图帕帕    时间: 2018-9-29 11:42
Fan723 发表于 2018-9-29 08:05
系统里面各图层的显示顺序是这样子的:
Scene_Map.prototype.createDisplayObjects = function() {
    thi ...

嗯,我研究一下。
另外, 将HUD精灵的显示换为createSpriteset,它的层次依然高于所有图片,是什么原因呢?






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