ページ 11

【解決済】メニュー画面の通貨名の表示位置を変更

Posted: 2022年2月02日(水) 11:15
by tanaka1105
いつもお世話になっております。
メニュー画面に表示される通貨について、

     金額 通貨
      0 G

と表示されていますが、これを

  通貨 金額
   G 0

という表示に変更する方法を模索しています。(添付ファイルの画像のイメージ)
しかし、プラグインをいじってみようと試みましたがさっぱりわかりませんでした。。
位置変更についてご指南いただけないでしょうか。
よろしくお願いします。

Re: メニュー画面の通貨名の表示位置を変更

Posted: 2022年2月02日(水) 14:02
by basu
tanaka1105 さんが書きました:いつもお世話になっております。
メニュー画面に表示される通貨について、

     金額 通貨
      0 G

と表示されていますが、これを

  通貨 金額
   G 0

という表示に変更する方法を模索しています。(添付ファイルの画像のイメージ)
しかし、プラグインをいじってみようと試みましたがさっぱりわかりませんでした。。
位置変更についてご指南いただけないでしょうか。
よろしくお願いします。
金額の描画は「Window_Base.prototype.drawCurrencyValue」関数で行われています。

金額の描画
this.drawText(value, x, y, width - unitWidth - 6, "right");

通貨の描画
this.drawText(unit, x + width - unitWidth, y, unitWidth, "right");

それぞれ(描画する文字, 描画する位置X軸, 描画するY軸, 描画範囲(横幅), 配置位置(左寄せ・中央寄せ・右寄せ))
となっています。
※配置位置を省略した場合は左寄せになります。

なのでこの部分を下記のように修正をすればご希望通りの動きが出来るかと思います。

金額の描画
this.drawText(value, x + unitWidth, y, width - unitWidth - 6);

通貨の描画
this.drawText(unit, x, y, unitWidth);

画像

ただ、この関数はショップの金額描画と共通の関数になっているので、ここを修正した場合はショップの金額も同様の描画方法になります。

画像

もしメニューの描画方法だけを変えたい場合は下記の方法で対応が出来るかもしれません

1.メニュー画面専用の金額描画処理関数を新たに作成する
  (既存の関数をコピーして上記の修正をする)
2.メニュー画面専用の金額ウィンドウを新たに作成して1で作成した金額描画処理関数を呼ぶようにする。
  既存の金額ウィンドウ(Window_Gold)を継承したクラスを用意して、金額描画処理関数を呼んでいる
  refresh関数をオーバーライドして1で作成した金額描画処理関数を呼ぶようにする。
  (Window_Goldも共通で使用されているため)
3.「Scene_Menu.prototype.createGoldWindow」関数で生成しているWindow_Goldのインスタンスを
  2で作成した新たな金額ウィンドウのインスタンスを生成するようにする。

まだ試してないので分かりませんが恐らく上記の方法でメニュー画面だけ描画方法を変えることが出来ると思います。

宜しくお願いします。

Re: メニュー画面の通貨名の表示位置を変更

Posted: 2022年2月02日(水) 19:21
by tanaka1105
basu様、ありがとうございます。
ご丁寧な説明でとても助かりました。狙い通りのことが出来るようになりました。