こんにちは、今日はRPGツクールMVの自作プラグインで独自の画面に任意の文字を表示する方法についてまとめていきます。
確認環境
RPGツクールMV Version 1.6.2
文字を表示する関数
Window_Baseクラスに定義されている以下の関数を使用して文字を表示します。
第一引数に表示したい文字列、第二引数にX座標、第三引数にY座標を指定します。
drawText("文字表示", 0, 0);
複数行表示したい場合は、同じくWindow_Baseクラスに定義されているlineHeight関数で一行の高さが取得できるため、この値を使用してY座標の調整を行います。
lineHeight
文字色を変更したい場合は以下のように変更します。
textColorの引数により文字色が変わります。
this.changeTextColor(this.textColor(1));
文字色を元に戻す場合は以下の関数を呼び出します。
this.resetTextColor();
サンプル
プラグインコマンド「TestScene」を実行すると独自のシーンを呼び出し、そのシーン文字を表示するサンプルです。
(function() {
var _Game_Interpreter_pluginCommand = Game_Interpreter.prototype.pluginCommand;
Game_Interpreter.prototype.pluginCommand = function(command, args) {
_Game_Interpreter_pluginCommand.call(this, command, args);
switch(command){
case 'TestScene':
SceneManager.push(Scene_Test);
break;
}
};
//--------------------------------------------------
// Name : Scene_Test
// Desc : テストシーンクラス
//--------------------------------------------------
function Scene_Test() {
this.initialize.apply(this, arguments);
}
Scene_Test.prototype = Object.create(Scene_Base.prototype);
Scene_Test.prototype.constructor = Scene_Test;
Scene_Test.prototype.initialize = function() {
Scene_Base.prototype.initialize.call(this);
};
Scene_Test.prototype.create = function() {
Scene_Base.prototype.create.call(this);
this.createBackground();
this.createWindowLayer();
this._testWindow = new Window_Test(0, 0, 400, 300);
this.addWindow(this._testWindow);
};
Scene_Test.prototype.update = function() {
Scene_Base.prototype.update.call(this);
};
Scene_Test.prototype.createBackground = function() {
this._backgroundSprite = new Sprite();
this._backgroundSprite.bitmap = SceneManager.backgroundBitmap();
this.addChild(this._backgroundSprite);
};
//--------------------------------------------------
// Name : Window_Test
// Desc : テストウィンドウクラス
//--------------------------------------------------
function Window_Test() {
this.initialize.apply(this, arguments);
}
Window_Test.prototype = Object.create(Window_Base.prototype);
Window_Test.prototype.constructor = Window_Test;
Window_Test.prototype.initialize = function(x, y, width, height) {
Window_Base.prototype.initialize.call(this, x, y, width, height);
};
Window_Test.prototype.update = function() {
Window_Base.prototype.update.call(this);
this.contents.clear();
var textPosY = 0;
this.drawText("文字表示", 0, textPosY);
textPosY += this.lineHeight();
this.changeTextColor(this.textColor(1));
this.drawText("文字色を変更する", 0, textPosY);
textPosY += this.lineHeight();
this.resetTextColor();
this.drawText("文字色を元に戻す", 0, textPosY);
textPosY += this.lineHeight();
this.drawText("変数0001 : " + $gameVariables.value(1), 0, textPosY);
textPosY += this.lineHeight();
this.drawText("スイッチ0001 : " + $gameSwitches.value(1), 0, textPosY);
textPosY += this.lineHeight();
};
})();