(〆解決)またまたJSについてお力を...m(_ _)m

アバター
KU0
記事: 31
登録日時: 2015年11月12日(木) 20:23
連絡を取る:

(〆解決)またまたJSについてお力を...m(_ _)m

投稿記事by KU0 » 2016年5月02日(月) 18:06

Window_ChoiceList.jsをちょっといじって
選択肢の項目内容を真ん中寄せにしたいと思うのですが
画像

[1]
Window_ChoiceList.prototype.drawItem = function(index) {
var rect = this.itemRectForText(index);
this.drawTextEx(this.commandName(index), rect.x, rect.y);
};

↑の記入を消して

[2]
Window_ChoiceList.prototype.itemTextAlign = function() {
return 'center';
};

↑を入れると真ん中寄せには出来たのですが...

[1]のを消してしまうと制御文字が使えなくなってしまうので
[1]をどう変更すれば真ん中寄せにできるのかを知りたいのですが...

もしどなたかよろしければよろしくお願いしますm(_ _;)m
最後に編集したユーザー KU0 on 2016年5月02日(月) 20:31 [ 編集 1 回目 ]

================================================
Twitter
https://twitter.com/KUforRPGmv
名無し蛙
記事: 304
登録日時: 2015年11月23日(月) 02:46

Re: またまたJSについてお力を...m(_ _)m

投稿記事by 名無し蛙 » 2016年5月02日(月) 19:01

お疲れ様です。

確かにdrawTextExの仕様を考えたら真ん中に位置調整するのは難しいですね。
ざっと見るとtextWidthEx(text)というメソッドがあるようなのでこれで自力でx位置を調整したらどうでしょう?
左寄せ表示がx位置0とした場合、真ん中表示のx位置は「(表示矩形幅-文字列長) / 2」になります。
これをオフセット値として加算すれば真ん中に表示されるはずです。

コード: 全て選択

Window_ChoiceList.prototype.drawItem = function(index) {
    var rect = this.itemRectForText(index);
    this.drawTextEx(this.commandName(index), rect.x, rect.y);
};

これを

コード: 全て選択

Window_ChoiceList.prototype.drawItem = function(index) {
    var rect = this.itemRectForText(index);
    var text = this.commandName(index);
    var x = rect.x + ((rect.width - this.textWidthEx(text)) / 2);
    this.drawTextEx(text, x, rect.y);
};

試してないけどこれでいけるはず…
アバター
KU0
記事: 31
登録日時: 2015年11月12日(木) 20:23
連絡を取る:

Re: またまたJSについてお力を...m(_ _)m

投稿記事by KU0 » 2016年5月02日(月) 20:31

>名無し蛙 様
いま試してみたところ、かなり良い感じで真ん中に調整されました!
こんなにも早く適切な返答をしていただきありがとうございました!m(_ _;)m
================================================
Twitter
https://twitter.com/KUforRPGmv

“MV:質問” へ戻る