ページ 1 / 1
メニュー画面にステータス情報表示するときの記述方法をおしえてください
Posted: 2016年12月01日(木) 19:04
by ほかほかお芋
質問掲示板を初めて利用させて頂きます。
現在、MVのプラグインOne-Actor's menu.jsを参考にさせて頂きながら主人公1人だけのメニュー画面にステータス(HP、MP、攻撃力、守備力など)を表示させようと試行錯誤しています。
現時点では、HP、MP、顔グラフィックは任意の位置に配置できるようになりましたが、ステータスの攻撃力から運までのID番号2~8の部分が表示できず途方にくれています。
現在作成中の記述は、
Window_MenuStatus.prototype.drawItemStatus = function(index) {
var actor = $gameParty.members()[index];
var rect = this.itemRectForText(index);
var x = rect.x;
var y = rect.y;
var width = rect.width;
var bottom = y + rect.height;
var lineHeight = this.lineHeight();
this.drawActorName(actor, x, y + lineHeight * 1, width);
this.drawActorNickname(actor, x + 260, y + lineHeight * 0, width);
this.drawActorClass(actor, x + 200, y + lineHeight * 0, width);
this.drawActorIcons(actor, x + 200, y + lineHeight * 1 , width);
this.drawActorHp(actor, x + 200, y + lineHeight * 3.5, width - 200);
this.drawActorMp(actor, x + 200, y + lineHeight * 5, width - 200);//ここまでは機能しています
//ここからが表示できないステータスになるのですが、
this.drawText(actor.param(2))(actor, x, y + lineHeight * 8, width);//攻撃力を表示しようと記載した内容です
攻撃力から運までの6つのパラメーターの表示をする方法をどなたかご教授お願いします。
Re: メニュー画面にステータス情報表示するときの記述方法をおしえてください
Posted: 2016年12月01日(木) 22:03
by まっつUP
ほかほかお芋様
お世話になります。
drawtextのところは多分こういう風に処理すればいいと思います。
引数paramIdには基本能力値のIDを入れてください。
this.drawText(actor.param(paramId), x, y, width, 'right');
Re: メニュー画面にステータス情報表示するときの記述方法をおしえてください
Posted: 2016年12月01日(木) 23:36
by ほかほかお芋
返信ありがとうございます。
早速試行させていただきます。
結果もおってお知らせいたします。
Re: メニュー画面にステータス情報表示するときの記述方法をおしえてください
Posted: 2016年12月01日(木) 23:49
by ほかほかお芋
結果をご報告させていただきます。
上記記述とおり試行してみたのですが、ステータスID2~8が表示させることはできませんでした。
自分でも色々試していますが、できるだけ多くのご意見を頂きたいと考えておりますので、たくさんのご助言おまちしております。
よろしくお願いいたします。
Re: メニュー画面にステータス情報表示するときの記述方法をおしえてください
Posted: 2016年12月02日(金) 00:42
by まっつUP
ほかほかお芋様
当方ではそちらのプラグインを使ったことがないのですが
どのようなエラーが起こりましたか。それとも単に表示されないだけでしょうか。
また、ステータスID2~8とありますが基本能力値はID7までしかないと思います。
Re: メニュー画面にステータス情報表示するときの記述方法をおしえてください
Posted: 2016年12月02日(金) 01:11
by ほかほかお芋
返信ありがとうございます。
Window_MenuStatus.prototype.drawItemStatus = function(index) {
var actor = $gameParty.members()[index];
var rect = this.itemRectForText(index);
var x = rect.x;
var y = rect.y;
var width = rect.width;
var bottom = y + rect.height;
var lineHeight = this.lineHeight();
this.drawActorName(actor, x, y + lineHeight * 1, width);
this.drawActorNickname(actor, x + 260, y + lineHeight * 0, width);
this.drawActorClass(actor, x + 200, y + lineHeight * 0, width);
this.drawActorIcons(actor, x + 200, y + lineHeight * 1, width);
this.drawActorHp(actor, x + 200, y + lineHeight * 3.5, width - 200);
this.drawActorMp(actor, x + 200, y + lineHeight * 5, width - 200);
this.drawText(actor.param(2), x, y + lineHeight * 8, width, 'right');//①攻撃力の表示をためしました。
};
①の文を外して起動すると、メニュー画面の変更したプログラムが有効になるのですが、①文を加えて実行しますとプログラムは
起動するのですがメニュー画面が初期化されてしまいます。※ステータスは7番まででしたすみません。
競合する他のプラグインがあるか試したのですが、原因は①文のようです。
どうしてもこのソロプレイヤー専用メニュープラグインを完成させたいので知恵をお貸しください。
よろしくお願いします。
Re: メニュー画面にステータス情報表示するときの記述方法をおしえてください
Posted: 2016年12月02日(金) 18:08
by まっつUP
ほかほかお芋様
返信いただいた内容中の
drawItemStatusのみの内容のプラグインを作成して試しに動かしてみましたが
エラー落ちはしませんでしたし、記述通り改変されました。
(もちろん調整されていないので不格好な配置で表示されますが)
One-Actor's menu.jsは昨日探しましたが見つからなかったので
直接の改変は困難ですね。
・メニュー画面が初期化されてしまいますの意味はよく分からないです。
・競合する他のプラグインがあるか試した
他のプラグインは全てオフにしてテストしてください。
そもそもdrawText自体をいじることは滅多にないと思います。
・原因は①文のようです
エラー落ちしなくてもまれに
コンソールにエラー文が表示されていることがあるので確認してください。
おかげさまで解決しました。
Posted: 2016年12月02日(金) 19:37
by ほかほかお芋
ま っ つ UP様へ
何度もご連絡していただきありがとうございます。
ご報告遅れましたが下記のとおり記載しましたら無事問題なく表示されました。
お時間とらせてしまい申し訳ありませんでした。本当にありがとうございました!
これからもっと独学に励みます。
Window_MenuStatus.prototype.drawItemStatus = function(index) {
var actor = $gameParty.members()[index];
var rect = this.itemRectForText(index);
var x = rect.x;
var y = rect.y;
var width = rect.width;
var bottom = y + rect.height;
var lineHeight = this.lineHeight();
this.drawActorName(actor, x, y + lineHeight * 2, width);
//this.drawActorLevel(actor, x, y + lineHeight * 1, width);
this.drawActorNickname(actor, x + 260, y + lineHeight * 0, width);
this.drawActorClass(actor, x, y + lineHeight * 0, width);
this.drawActorIcons(actor, x + 200, y + lineHeight * 2, width);
this.drawActorHp(actor, x + 200, y + lineHeight * 4.5, width - 200);
this.drawActorMp(actor, x + 200, y + lineHeight * 6, width - 200);
for (var i = 0; i < 6; i++) {
var paramId = i + 2;
var y2 = y + lineHeight * (i + 9);
this.changeTextColor(this.systemColor());
this.drawText(TextManager.param(paramId), x, y2, 160);
this.resetTextColor();
this.drawText(actor.param(paramId), x + 160, y2, 60, 'right');
}
};