[解決済み]メニュー画面「ゲーム終了」の選択肢を中央揃えにしたい

アバター
旧里見
記事: 6
登録日時: 2019年1月12日(土) 16:24

[解決済み]メニュー画面「ゲーム終了」の選択肢を中央揃えにしたい

投稿記事by 旧里見 » 2019年1月12日(土) 20:31

こんばんは。
お世話になっております。

メニュー画面から「ゲーム終了」コマンドを選択すると、
デフォルトでは「タイトルへ」と「やめる」の二つ選択肢が出ると思いますが、
この選択肢のテキストを中央揃えにしたいです。

https://tm.lucky-duet.com/viewtopic.php?t=3329
https://tm.lucky-duet.com/viewtopic.php?f=23&t=3701&hilit=%E9%81%B8%E6%8A%9E%E8%82%A2%E3%80%80%E4%B8%AD%E5%A4%AE
こちらの記事を参考に、
タイトル画面のウィンドウとイベント処理の選択肢はどうにか中央揃えにできたのですが、
ゲーム終了の選択肢については上手く書き換えることができません。

素人目には、おそらくrpg_windows.jsの5777~5809行目のWindow_GameEndをどうにかするんだろうなとしか分からず、
皆様のお知恵をお借りしたいと思っています。

また、イベント処理の選択肢も、現状では常に中央揃えになってしまうので、
可能なら左揃えと中央揃えを使い分けることができたらとも考えているのですが、
こちらはもはやプラグインの領域だと思い、お手上げ状態です。
(本当はプラグイン素材のリクエストに投稿すべき内容ですが、
上記質問と関連していると思い、書かせていただきました。)

どうぞよろしくお願いします。
最後に編集したユーザー 旧里見 on 2019年1月14日(月) 18:22 [ 編集 1 回目 ]

アバター
飯尾隼人
記事: 15
登録日時: 2018年3月05日(月) 16:57
連絡を取る:

Re: メニュー画面「ゲーム終了」の選択肢を中央揃えにしたい

投稿記事by 飯尾隼人 » 2019年1月12日(土) 22:46

旧里見さん

 こんばんは。問題把握しました。選択肢の描画を中央揃えにしたいのですね。
 通常、選択肢の名前を描画しているのはrpg_windows.jsの中の下記関数となります。

コード: 全て選択

Window_Command.prototype.drawItem = function(index) {
    var rect = this.itemRectForText(index);
    var align = this.itemTextAlign();
    this.resetTextColor();
    this.changePaintOpacity(this.isCommandEnabled(index));
    this.drawText(this.commandName(index), rect.x, rect.y, rect.width, align);
};


 この関数の中の

コード: 全て選択

this.drawText(this.commandName(index), rect.x, rect.y, rect.width, align);


 で文字を描画しているのですが、この()の中のalignで左、中央、右揃えを指定しています。
 そのため、ここを'center'とすれば中央揃えになりますが、全ての選択肢に適応されてしまうためお勧めしません。

 おっしゃる通り、「タイトルへ」と「やめる」の選択肢を表示するウィンドウはWindow_GameEndです。
 そのため、この選択肢のみを中央揃えにしたい場合、下記コードを追加すれば大丈夫です。
 稚拙ですが作成したプラグインも添付いたします。

コード: 全て選択

Window_GameEnd.prototype.drawItem = function(index) {
    var rect = this.itemRectForText(index);
    var align = this.itemTextAlign();
    this.resetTextColor();
    this.changePaintOpacity(this.isCommandEnabled(index));
    this.drawText(this.commandName(index), rect.x, rect.y, rect.width, 'center');
};


 難しいですが、Window_GameEndはWindow_Commandを継承しているため、Window_GameEndにてdrawItemを新しく定義して上書きしてやれば
 このウィンドウ(Window_GameEnd)のみWindow_GameEndのdrawItemで描画してくれます。

 使い分ける場合はプラグインを作成するしかないと思われます。
 もしくは、すでにある可能性もあるため探してみるのも良いかもしれません。

以上です。結果報告お待ちしております!
添付ファイル
Window_GameEnd_Align.js
(819 バイト) ダウンロード数: 3 回
________________________________________
「渡り鳥の楽園」
飯尾隼人
HP: http://wataridori-rakuen.jp/Elves/
twitter: https://twitter.com/wataridori_raku
Ci-en: https://ci-en.jp/creator/2449
________________________________________
アバター
旧里見
記事: 6
登録日時: 2019年1月12日(土) 16:24

Re: メニュー画面「ゲーム終了」の選択肢を中央揃えにしたい

投稿記事by 旧里見 » 2019年1月13日(日) 00:32

飯尾隼人さん

こんばんは。
丁寧なご説明とプラグインの作成、本当にありがとうございます!

早速プラグインを導入したところ、希望通り中央揃えにすることができました。
また、説明していただいたおかげで仕組みも理解できて、一つ勉強になりました。

使い分けは、やはりプラグインを作るしかないのですね。
現時点ではどうしても必要というわけではないので、
とりあえず様子を見たいと思います。

ご返答、どうもありがとうございました。
大変助かりました。

“MV:質問” へ戻る