查看: 10586|回复: 25

[有事请教] 想自己重新设计状态栏布局,该咋整?

[复制链接]
梦石
0
星屑
7994
在线时间
1319 小时
注册时间
2006-7-18
回帖
459
发表于 2018-5-25 11:53:53 | 显示全部楼层 |阅读模式

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

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

×
当初VA时倒是弄懂了默认脚本的内容,修修改改也成了!
可这个MV,好像没找到状态窗口布局位置,想改也无从下手!
有没有大佬帮写一个脚本?
理想是图1这样
状态栏1.png

不能实现的话,弄成图2哪样也可以!
状态栏2.png

评分

参与人数 1赞 +1 收起 理由
chd114 + 1 排版不错···

查看全部评分

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

开拓者

发表于 2018-5-25 12:36:29 | 显示全部楼层
在这个窗口里面
Window_Status
回复

使用道具 举报

梦石
0
星屑
7994
在线时间
1319 小时
注册时间
2006-7-18
回帖
459
 楼主| 发表于 2018-5-25 15:08:28 | 显示全部楼层
yang1zhi 发表于 2018-5-25 12:36
在这个窗口里面
Window_Status

恩 谢谢 找到了!按照构想修改了各种数值的坐标位置!调整了窗口大小!
可是简介这部分因为是在另一个窗口里的!要怎样增加一个新窗口啊?
回复

使用道具 举报

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

开拓者

发表于 2018-5-25 15:44:14 | 显示全部楼层
本帖最后由 yang1zhi 于 2018-5-25 15:46 编辑
雷影 发表于 2018-5-25 15:08
恩 谢谢 找到了!按照构想修改了各种数值的坐标位置!调整了窗口大小!
可是简介这部分因为是在另一个窗 ...


Scene_Status.prototype.create = function() {
    Scene_MenuBase.prototype.create.call(this);
    this._statusWindow = new Window_Status();
    this._statusWindow.reserveFaceImages();
    this.addWindow(this._statusWindow);
    this._statusWindow.setHandler('cancel',   this.cancel.bind(this));
    this._statusWindow.setHandler('pagedown', this.nextActor.bind(this));
    this._statusWindow.setHandler('pageup',   this.previousActor.bind(this));
        this.createnlxsWindow();
};

像这样就是加个窗口
重点是
this._statusWindow = new Window_Status();
这是产生个新的Window_Status赋值给this._statusWindow
然后是
this.addWindow(this._statusWindow);
把这个窗口添加到显示板上
setHandler这些是按键指令
窗口怎么写,就参考Window_Status这些Window_开头的,这些都是窗口。
抄一份过来,修改后,再添加进来就是个新窗口了
回复

使用道具 举报

梦石
0
星屑
7994
在线时间
1319 小时
注册时间
2006-7-18
回帖
459
 楼主| 发表于 2018-5-25 19:29:55 | 显示全部楼层
yang1zhi 发表于 2018-5-25 15:44
Scene_Status.prototype.create = function() {
    Scene_MenuBase.prototype.create.call(this);
    t ...

看不懂啊!在原本的代码上修修改改还勉强可以,要重写一个的话不知道要怎么入手!
能不能帮写完啊!就是在Window_Status里,下方增加一个能显示2~3行角色简介文字的窗口!
回复

使用道具 举报

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

开拓者

发表于 2018-5-25 19:43:27 | 显示全部楼层
雷影 发表于 2018-5-25 19:29
看不懂啊!在原本的代码上修修改改还勉强可以,要重写一个的话不知道要怎么入手!
能不能帮写完啊!就是 ...

Window_Status本身是窗口,
要增加窗口应该是在Scene_Status。
和VA差不多吧。
VA的应该是
@statusWindow = Window_Status.new
下面还要加个释放
而MV的不用写释放
不过要写addWindow
回复 1 0

使用道具 举报

梦石
0
星屑
7994
在线时间
1319 小时
注册时间
2006-7-18
回帖
459
 楼主| 发表于 2018-5-26 17:58:25 | 显示全部楼层
yang1zhi 发表于 2018-5-25 19:43
Window_Status本身是窗口,
要增加窗口应该是在Scene_Status。
和VA差不多吧。

能不能帮写一个完整的啊!
回复

使用道具 举报

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

开拓者

发表于 2018-5-26 18:28:53 | 显示全部楼层
雷影 发表于 2018-5-26 17:58
能不能帮写一个完整的啊!

[pre lang="javascript"]//-----------------------------------------------------------------------------
// Window_Status_xiamian
//
// The window for displaying full status on the status screen.

var Status_xiamian_create = Scene_Status.prototype.create
Scene_Status.prototype.create = function() {
    Status_xiamian_create.call(this);
    this._status_xiamianWindow = new Window_Status_xiamian();
    this.addWindow(this._status_xiamianWindow);
};

var Status_xiamian_refreshActor = Scene_Status.prototype.refreshActor
Scene_Status.prototype.refreshActor = function() {
        Status_xiamian_refreshActor.call(this);
    var actor = this.actor();
    this._status_xiamianWindow.setActor(actor);
};


function Window_Status_xiamian() {
    this.initialize.apply(this, arguments);
}

Window_Status_xiamian.prototype = Object.create(Window_Selectable.prototype);
Window_Status_xiamian.prototype.constructor = Window_Status_xiamian;


Window_Status_xiamian.prototype.initialize = function() {
    var width = Graphics.boxWidth;
    var height = Graphics.boxHeight/4;
        var x = 0
        var y = 459
    Window_Selectable.prototype.initialize.call(this, x, y, width, height);
    this._actor = null;
    this.refresh();
    this.activate();
};

Window_Status_xiamian.prototype.setActor = function(actor) {
    if (this._actor !== actor) {
        this._actor = actor;
        this.refresh();
    }
};

Window_Status_xiamian.prototype.refresh = function() {
    this.contents.clear();
        if (!this._actor) {return}
        console.log(this._actor)
        this.drawTextEx(this._actor.profile(), 0, 0);
};


[/pre]
回复

使用道具 举报

梦石
0
星屑
22879
在线时间
8598 小时
注册时间
2011-12-31
回帖
3270
发表于 2018-5-26 19:27:23 | 显示全部楼层
https://triacontane.blogspot.hk/2016/03/gui.html
GUI画面デザインプラグイン


 パラメータ「デザインモード」を「ON」にすると、マウスのドラッグ&ドロップで既存のウィンドウや追加したウィンドウの位置をグラフィカルに調整し、横幅などのプロパティを自由に変更できます。位置を調整したらデザインモードをOFFにして起動すると、変更した位置が反映されています。
指定可能なプロパティ

    ウィンドウの横幅
    ウィンドウの高さ
    ウィンドウの余白
    ウィンドウのフォントサイズ
    ウィンドウの1行のあたりの高さ
    ウィンドウの背景透明度
    ウィンドウの行数
    ウィンドウの背景画像ファイル名
回复

使用道具 举报

梦石
0
星屑
7994
在线时间
1319 小时
注册时间
2006-7-18
回帖
459
 楼主| 发表于 2018-5-26 21:56:57 | 显示全部楼层
本帖最后由 雷影 于 2018-5-26 22:57 编辑
yang1zhi 发表于 2018-5-26 18:28
//-----------------------------------------------------------------------------
// Window_Status_x ...


Maximum call stack size exceeded
出现这个错误!原来的脚本我只是改了改各种坐标!没改代码!
我把这一段放在最下面就出现这个错误!

折腾了一下出现这个显示!
图1.jpg

点评

没问题的啊。我用新建工程测试过。你把它做成插件放进去。要么你改过你的脚本。要么你顺序放太前面了。  发表于 2018-5-27 01:46
你按F8可以清楚看到哪一行报错  发表于 2018-5-26 22:04
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部