ページ 11

【解決済み】スマホ縦持ちUIプラグインの修正方法について

Posted: 2021年3月20日(土) 10:05
by ちゅうと
Krd_UI_Portrait.js というスマホの縦持ち用のプラグインを利用しています。

主人公は1人のため、1人用にカスタマイズしようと思っているのですが
戦闘画面のステータスバーが上手く調整できません。
現状
現状
理想図
理想図
Window_BattleStatus.prototype.drawGaugeAreaWithTp のところを

コード: 全て選択

    this.drawActorHp(actor, rect.x + 0, rect.y+36, 108 - 16);
    this.drawActorMp(actor, rect.x + 0, rect.y+72, 96-20);
    this.drawActorTp(actor,  rect.x + 0, rect.y+108,96-25);
 
に修正しました。
行数の見た目を変更することはできたのですが、横幅の変え方が分かりません。

また、以前見かけた気がするのですが、探してもわからないことがありまして、
「スキルの選択肢が1つだったら、自動的にそのスキルを実行する」
というようなプラグインはありますでしょうか。

回答よろしくお願いします。

Re: スマホ縦持ちUIプラグインの修正方法について

Posted: 2021年3月27日(土) 23:10
by くろうど
こんばんは。

そのスマホ縦長画面用プラグインは私が作った物のようなので、ゲージについて分かる範囲で回答します。
最近はMZを触っているので、MVについては忘れ気味です。

まず、「rect.y, 」の右側で「108 - 16」などの怪しい引き算をしている所がゲージの幅です。
なので、ココの数値(HP~TPの3か所)を変える事でゲージの幅が変わると思います。

要望からすると3か所とも同じ値にすればイイと思います。
数値ではなく rect.width と書くことで領域の幅いっぱいいっぱいのゲージになると思います。

そことは別に gaugeAreaWidth という項目があります。
こちらはゲージを表示する領域全体の幅だったと思います。

もし、ゲージがちょん切れるような表示になる場合は、
このゲージ領域幅を変更してください。
こちらは数値の代わりに this.windowWidth() でウィンドウ横幅いっぱいいっぱいになると思います。

コード: 全て選択

Window_BattleStatus.prototype.gaugeAreaWidth = function() {
    return 280;
};

Window_BattleStatus.prototype.drawGaugeAreaWithTp = function(rect, actor) {
    this.drawActorHp(actor, rect.x + 16, rect.y, 108 - 16);
    this.drawActorMp(actor, rect.x + 123, rect.y, 96 - 20);
    this.drawActorTp(actor, rect.x + 234 - 25, rect.y, 96 - 25);
};
以上、ゲージ幅について、よろしくおねがいします。

Re: スマホ縦持ちUIプラグインの修正方法について

Posted: 2021年3月28日(日) 10:27
by ちゅうと
くろうど様
こんにちは。返信いただきありがとうございます!

教えていただいたところを修正しました。
this.windowWidth()にしたところ、HP/MP/TPの左側の文字が切れてしまうため
this.windowWidth()-50にしたところ問題なくなりました。
希望通りの形にでき、うれしいです!ありがとうございました!

コード: 全て選択


Window_BattleStatus.prototype.gaugeAreaWidth = function() {
    return this.windowWidth()-50;
};

Window_BattleStatus.prototype.drawGaugeAreaWithTp = function(rect, actor) {
    this.drawActorHp(actor, rect.x , rect.y+36, rect.width);
    this.drawActorMp(actor, rect.x, rect.y+72, rect.width);
    this.drawActorTp(actor, rect.x, rect.y+108, rect.width);
};