【解決済み】メニュー画面の一覧の枠を

ラムすけ

ユーザー
メニュー画面の一覧の枠のサイズはどうやって
変更できますか?
(アイテム、スキル、セーブなどの一覧)

メニュー画面を追加するとスクロールになり、
11個いれようとすると微妙に収まらず
↓とか出て、はみ出たようになるのを防ぎたいです。

*ゴールドの枠を制御して調整する方法でも構いません。
 
メニュー画面の一覧の枠のサイズはどうやって
変更できますか?
(アイテム、スキル、セーブなどの一覧)

メニュー画面を追加するとスクロールになり、
11個いれようとすると微妙に収まらず
↓とか出て、はみ出たようになるのを防ぎたいです。

*ゴールドの枠を制御して調整する方法でも構いません。
MVですか?
 
メニュー画面の一覧の枠のサイズはどうやって
変更できますか?
(アイテム、スキル、セーブなどの一覧)

メニュー画面を追加するとスクロールになり、
11個いれようとすると微妙に収まらず
↓とか出て、はみ出たようになるのを防ぎたいです。

*ゴールドの枠を制御して調整する方法でも構いません。

「メニュー画面の一覧」がどの部分であるかの認識が合っていれば、
サイズを変更するには、
rmmz_scenes.js の1391行目から(以下のコード部分)を変更するプラグインを作れば良いと思います。
(直接コアスクリプトを書き換えることは非推奨です)

以下の wh が高さですので、変更すると高さが変わると思います。
特に今回は、ゴールドの枠を変えても良いとのことなので、
- this.goldWindowRect().height
を削除しても効果が得られる可能性があります。
JavaScript:
Scene_Menu.prototype.commandWindowRect = function() {
    const ww = this.mainCommandWidth();
    const wh = this.mainAreaHeight() - this.goldWindowRect().height;
    const wx = this.isRightInputMode() ? Graphics.boxWidth - ww : 0;
    const wy = this.mainAreaTop();
    return new Rectangle(wx, wy, ww, wh);
};

一方で、
rmmz_windows.js の
Window_MenuCommand.prototype.itemHeight を変更して、
枠のサイズをそのままに、表示内容側のサイズ変更するというアプローチもあります。

こちらについては、必要がありましたら追加で回答いたします。

尚、上記コードの変更については動作確認をしていないため、
対象箇所が間違っている可能性があります。
考え方は変わらないので、ご了承ください。

以上、よろしくお願いします。
 
Gを残したままでリストの高さを調整するなら
こちらの数値を制御すればいけそうです。
const itemHeight = Number(parameters["ItemHeight"] || 44);

Window_MenuCommand.prototype.itemHeight = function()
{ return itemHeight;
}
 
Gを残したままでリストの高さを調整するなら
こちらの数値を制御すればいけそうです。
const itemHeight = Number(parameters["ItemHeight"] || 44);

Window_MenuCommand.prototype.itemHeight = function()
{ return itemHeight;
}

良い感じなんじゃないでしょうか。

ちなみに、
以下の rmmz_windows.js v1.10.0 の 1960行目からを参考にすると、

JavaScript:
Window_MenuStatus.prototype.numVisibleRows = function() {
    return 4;
};

Window_MenuStatus.prototype.itemHeight = function() {
    return Math.floor(this.innerHeight / this.numVisibleRows());
};

this.innerHeight でWindowの内側の高さが得られ、
単純な割り算で1コマンド分の高さを算出できるので、
コマンドが増えた場合や画面サイズの変更などの際に自動で対応されると思います。

よろしくお願いします。
 
Back
トップ