ページ 11

【解決済】戦闘画面_ステートを4つ表示させるため、HPバーを短くして位置を変更させたい

Posted: 2020年11月16日(月) 02:39
by osakana
やりたいこと:戦闘画面でステートを4つ表示させたいのでHPバーを短くしたい(加工で作った画像参照)
説明1.jpg
説明3.jpg
知りたいこと:それが出来るプラグイン、あるいはHPバーの位置の変更方法
(画面サイズ:768*432)
----
戦闘画面でステートを4つ表示したいと思い、
viewtopic.php?t=1534
こちらの回答を読んだところ、スペースが確保できれば表示できるのかな?と考え、
HPバーの横幅を変更しようとしています。

とりあえず、横幅はrpg_windows.jsの
Window_Base.prototype.drawActorHp内の
width = width || 186; を
width = width/1.5 || 186; として変更したのですが、『HPバーの位置の変更方法』がわかりません。
説明2.jpg
(TPを使ってないため、Window_BattleStatus.prototype.drawGaugeAreaWithoutTpあたりの改変かなと考えたのですが、変更方法がわかりませんでした。)

方法がありましたら、教えていただきたいです。
よろしくお願いします。

Re: 戦闘画面_ステートを4つ表示させるため、HPバーを短くして位置を変更させたい

Posted: 2020年11月16日(月) 23:27
by ecf5DTTzl6h6lJj02
こんばんは。
イメージ画像をもとにレイアウトを変更すると下の画像のようになります。
Window_BattleStatus sample.png
かなりぎりぎりの表示ですが、HPやMPの表示をこれ以上狭くすると、
最大値が表示されなくなるので、最大値を表示したい場合は、これが限界かと。
この表示でもよければ下記コードをプラグインとして導入してみてください。

コード: 全て選択

(()=>{
    'use strict'
    
    Window_BattleStatus.prototype.basicAreaRect = function(index) {
        var rect = this.itemRectForText(index);
        rect.width -= this.gaugeAreaWidth() + 8;
        return rect;
    };

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

    Window_BattleStatus.prototype.drawBasicArea = function(rect, actor) {
        this.drawActorName(actor, rect.x + 0, rect.y, 128);
        this.drawActorIcons(actor, rect.x + 128, rect.y, 128);
    };

    Window_BattleStatus.prototype.drawGaugeAreaWithoutTp = function(rect, actor) {
        this.drawActorHp(actor, rect.x + 0, rect.y, 155);
        this.drawActorMp(actor, rect.x + 159,  rect.y, 155);
    };
})();
他の戦闘画面レイアウト変更のプラグインとの併用は想定していません。ご了承ください。

Re: 戦闘画面_ステートを4つ表示させるため、HPバーを短くして位置を変更させたい

Posted: 2020年11月17日(火) 00:58
by osakana
ecf5DTTzl6h6lJj02様
はじめまして、返信ありがとうございます。

ご丁寧に、コードを作成していただきありがとうございます…!
提示していただいたコードを導入したところ、希望通りの表示になりました!
4桁時の、HPMP最大値の表示問題については盲点でした。

本当に助かりました、ありがとうございました!!