ページ 1 / 1
【解決済み】EventSelector.jsにアイコン表示は出来ないでしょうか?
Posted: 2020年1月26日(日) 00:34
by のののののの
こんばんは。
現在制作しているゲームの色々なところにアイコン表示しています。
EventSelector.jsを使用して、コモンイベント選択にアイコンを表示したいです。
試しにコモンイベント名前に\I[n]をつけましたが、アイコンの表示が出来ませんでした...
コモンイベント選択にアイコンを表示するプラグインを
どなたか作成をお願いいただけないでしょうか。
よろしくお願いいたします。
Re: EventSelector.jsにアイコン表示は出来ないでしょうか?
Posted: 2020年1月26日(日) 07:39
by jp_asty
ののののののさん
バージョンの違い等がなければですが、
189行目の
コード: 全て選択
this.drawText(commonEvent.name, rect.x, rect.y, rect.width);
を
コード: 全て選択
this.drawTextEx(commonEvent.name, rect.x, rect.y);
に書き換えることで\I[n]が機能するようにはなると思います。
宜しくお願いします。

- 実行例
Re: EventSelector.jsにアイコン表示は出来ないでしょうか?
Posted: 2020年1月26日(日) 11:56
by のののののの
jpasty様、お忙しいところ画像までご用意いただたうえ、丁寧なご回答をしていただきありがとうございます!
無事できました!ありがとうございます。
最後にもう一つお聞きしてもよろしいでしょうか?
特定の数値の幅内に文字を収めることは可能でしょうか?
例えば、50Pixel内に文字を収めるです。
試しに、139番目に
コード: 全て選択
Window_Selectable.prototype.initialize.call(this, x, y, width, height, 50);
見様見真似で文字幅を追加して見たのですが、反応がありませんでした...
度々の質問で恐縮ですが、ご回答いただければ幸いです。
Re: EventSelector.jsにアイコン表示は出来ないでしょうか?
Posted: 2020年1月26日(日) 14:52
by jp_asty
ののののののさん
恐らく、長い名前の時に枠をはみ出してしまうのを今までと同様に文字を小さくして枠内に収めたい
という要望で正しいのであれば、
187~189行目までを消してその場所に、
コード: 全て選択
var commonEvent = this._list[index];
var rect = this.itemRectForText(index);
var name = commonEvent.name;
var arr = /^\[\d+\]/.exec(commonEvent.name.slice(0));
if(arr) {
var iconIndex = parseInt(arr[0].slice(1));
this.drawIcon(iconIndex, rect.x + 2, rect.y + 2);
rect.x += (Window_Base._iconWidth + 4);
rect.width -= (Window_Base._iconWidth + 4);
name = name.substr(arr[0].length);
}
this.drawText(name, rect.x, rect.y, rect.width);
のコードを貼り付け、
コモンイベントの名前の先頭に[1]と既述すると1番のアイコンが表示され、かつ文字が枠内に収まるようになります。
先程と既述方法が違いますのでご注意ください。
※そのプラグインはツクールMVの準公式プラグインであり、公式のライセンスに準拠するのであれば、改変後の単独での配布はNGの可能性があるため、このような形を取らせて頂きました。
宜しくお願いします。

- 実行例
Re: EventSelector.jsにアイコン表示は出来ないでしょうか?
Posted: 2020年1月26日(日) 16:21
by のののののの
jpasty様、お忙しいところ画像の用意と丁寧なご回答いただきましてありがとうございます!
はい、ウィンドウ枠に文字を収めたいと思っていました!
私が思い描いていたご修正をしていただき本当にありがとうございます!
無事にコードを修正することが、できました!!
また、あわせて、アイコンの位置もご調整していただきありがとうございました^^
※MVの準公式プラグインとは知りませんでした。教えていただきありがとうございます。
プラグインの扱いには気をつけます。
丁寧なご回答をしていただき、本当にありがとうございました!!