マップ上でのウインドウ表示に関して教えてください。【解決済み】

返信する
アバター
ビービー
記事: 308
登録日時: 2016年1月12日(火) 18:40

マップ上でのウインドウ表示に関して教えてください。【解決済み】

投稿記事 by ビービー »

現在ミニゲーム用にスコアや経過時間を表示するウインドウをコトノハさんのブログ記事「マップ上に常に情報ウィンドウを表示する」をもとに作っているのですが、三つほどわからないことがあるので教えてください。

一つ目は、変数の表示についてなのですが、現在一桁目が
  1
ここの位置の場合
  1234
とケタが右に増えていくわけですが
1234
のように左に増えていくようにしたいです。
やり方があれば教えてください。

二つ目は、時間計測のためにこちらの記事(http://tm.yumineko.com/viewtopic.php?f= ... 3%BC#p2825)でfftfanttさんが作られた「オリジナルタイマープラグイン」を使っていてそのカウントアップをウインドウ内で表示する方法があれば教えてください。
もし表示する方法がないのであれば、ウインドウよりカウントを上に表示する方法を教えていただけるとありがたいです。

三つ目は、行ごとにフォントのサイズを変える方法を教えていただきたいのですが、可能でしょうか?

表題の件に関する質問は以上の三つになります。
どれか一つでも教えていただけるとすごく助かりますので、返答お待ちしております。
よろしくお願いします。

それと表題とは関係ないのですが、こういった質問の場合、コードを載せるのと、jsファイルを添付するのではどちらがいいのでしょうか?
いちおうまずは以下にコードを全文載せておきます。

コード: 全て選択

(function() {

	// マップ上にウィンドウ表示するよ宣言
	var Scene_map_start = Scene_Map.prototype.start;
	Scene_Map.prototype.start = function() {
		Scene_map_start.call(this);
	    this._InfoWindow = new Window_Info();
	    this.addWindow(this._InfoWindow);
	};
    var _Scene_Map_update = Scene_Map.prototype.update;
    Scene_Map.prototype.update = function() {
        _Scene_Map_update.call(this);
        this._InfoWindow.setText();
        // 指定スイッチで起動
        if($gameSwitches.value(2)){
            this._InfoWindow.show();
        }else{
            this._InfoWindow.hide();
        }        
    };
	
	// ここからメニューウィンドウ作り始まります。
	function Window_Info() {
	    this.initialize.apply(this, arguments);
	}

	Window_Info.prototype = Object.create(Window_Base.prototype);
	Window_Info.prototype.constructor = Window_Info;
	Window_Info.prototype.initialize = function() {
		var x = 0;
		var y = 0;
	    var width = 180;
	    var height = 624;
	    Window_Base.prototype.initialize.call(this, x, y, width, height);
	};

	Window_Info.prototype.setText = function(str) {
		this._text = str;
		this.refresh();
	};
	
	// ウィンドウに載せる内容
	Window_Info.prototype.refresh = function() {
	    this.contents.clear();
		this.changeTextColor(this.textColor(16));
		this.drawText("COMBO",0, 0);
		this.resetTextColor();
		this.drawText($gameVariables.value(39),100,40);
		this.changeTextColor(this.textColor(16));
		this.drawText("COMBO BONUS",0, 100);
		this.resetTextColor();
		this.drawText($gameVariables.value(56),100,140);
		this.changeTextColor(this.textColor(16));
		this.drawText("SCORE",0, 200);
		this.resetTextColor();
		this.drawText($gameVariables.value(57),100,240);
		this.changeTextColor(this.textColor(16));
		this.drawText("TIME",0, 300);
		this.drawText("LIFE",0, 400);
		this.resetTextColor();
		this.drawText("x " + $gameVariables.value(40),50,440);
	};
	
	// フォントサイズ
	Window_Info.prototype.standardFontSize = function() {
    	return 26;
    };
	// ウィンドウの透明度
//	Window_Info.prototype.standardBackOpacity = function() {
//    	return 255;
//	};
    // ウィンドウの余白
	Window_Info.prototype.standardPadding = function() {
    	return 18;
	};
	// ウィンドウの色調
//	Window_Info.prototype.updateTone = function() {
//    	this.setTone(64, 0, 128);
//	};
	
})();
最後に編集したユーザー ビービー [ 2016年5月22日(日) 19:23 ], 累計 1 回
------------------------------------------------------
Twitterやってます。
https://twitter.com/BB_ENTER
ブログもやってます。
http://bb-entertainment-blog.blogspot.jp/
奏ねこま
記事: 702
登録日時: 2016年1月20日(水) 20:04

Re: マップ上でのウインドウ表示に関して教えてください。

投稿記事 by 奏ねこま »

1つ目への回答。

ビービーさん作のプラグインではdrawTextに3つの引数を指定していますが、これは2つの引数が省略された状態になっています。
省略されている2つの引数は、「表示幅」「アラインメント(左寄せとか右寄せとか)」です。
なので、以下のように指定すると、表示が右寄せになります(表示幅は、0を指定するとデフォルト値になります)。

drawText(引数1, 引数2, 引数3, 0, 'right');

2つ目への回答。

とりあえず思いつくのは、コモンイベントを並列実行して、タイマープラグインのプラグインコマンドで
欲しい値を変数に取得、その変数の値をウインドウで表示すればできるんじゃないでしょうか。

3つ目への回答。

this.contents.fontSizeにサイズを指定することで、フォントサイズを変更できます。
drawTextを実行する前に「this.contents.fontSize = 10;」のように指定してください。
アバター
ビービー
記事: 308
登録日時: 2016年1月12日(火) 18:40

Re: マップ上でのウインドウ表示に関して教えてください。

投稿記事 by ビービー »

@こまさんいつもありがとうございます。
さっそくやってみたところ二つ目と三つ目は理想どおりになってくれました。ありがとうございます。
ですが一つ目が上手くいかずなぜか変数が表示されなくなってしまいました。
this.drawText($gameVariables.value(57),0,240, 0, 'right');
と書いてみたんですが、間違っていますでしょうか?
------------------------------------------------------
Twitterやってます。
https://twitter.com/BB_ENTER
ブログもやってます。
http://bb-entertainment-blog.blogspot.jp/
奏ねこま
記事: 702
登録日時: 2016年1月20日(水) 20:04

Re: マップ上でのウインドウ表示に関して教えてください。

投稿記事 by 奏ねこま »

ビービー さんが書きました:ですが一つ目が上手くいかずなぜか変数が表示されなくなってしまいました。
this.drawText($gameVariables.value(57),0,240, 0, 'right');
と書いてみたんですが、間違っていますでしょうか?
表示幅をデフォルトにしたことで、右寄せ表示した文字が画面外になってるのかもしれませんね。
表示する箇所とその幅が決まっているなら、その幅を4番目の引数に設定してみてください。
アバター
ビービー
記事: 308
登録日時: 2016年1月12日(火) 18:40

Re: マップ上でのウインドウ表示に関して教えてください。

投稿記事 by ビービー »

幅を変更したところ、表示されるようになりました。
本当にありがとうございました。
解決とさせていただきます。
------------------------------------------------------
Twitterやってます。
https://twitter.com/BB_ENTER
ブログもやってます。
http://bb-entertainment-blog.blogspot.jp/
返信する

“MV:質問”に戻る