ページ 1 / 1
【解決】画面に常駐するウィンドウのつくり方
Posted: 2017年5月27日(土) 13:43
by ハタマル。
お世話になっております。
似たような質問があったのですが、どうも欲しい回答ではなかったので、改めて質問させていただきます。
制限時間系のプラグインを作っているのですが、
それを可視化したウィンドウがメニューを閉じるときやマップ移動すると一緒に消えてしまいます
実際の時間ではなく、ステータスで変動する数値で制限時間をプラグイン内で計算しているので、それも残したまま使いたいのです。
gauge.prototype = Object.create(Sprite.prototype)と単に押し込んでベースを作るだけでは足りないということはわかったのですが、
そこから先がよくわからないので、ご教授頂けると助かります。
Re: 画面に常駐するウィンドウのつくり方
Posted: 2017年5月27日(土) 13:54
by フトコロ
こんにちは。
ハタマル。 さんが書きました:制限時間系のプラグインを作っているのですが、
それを可視化したウィンドウがメニューを閉じるときやマップ移動すると一緒に消えてしまいます
まず、ハタマルさんのプラグインでは、ウィンドウをどのように画面に表示させているのか、ご教示いただけないでしょうか。
基本的に、マップ画面で常に表示したい場合はScene_Map.prototype.start()内で、ウィンドウを生成すればいいと思います。
Re: 画面に常駐するウィンドウのつくり方
Posted: 2017年5月27日(土) 14:11
by ハタマル。
返信ありがとうございます
変数の代入等は削ってあるのですが、上記のファイルの通りです
WS_gauge.prototype.drawWindow = function(x, y)
{
this._window = new Window_Base(x, y, $.windowWidth, $.windowHeight);
this.addChild(this._window);
};
の部分が直接の描写部分です
見ての通りオブジェクトクラスを適当に起き、ウィンドウベースをシンプルに押し込んでるだけです
Scene_Map.prototype.start()での生成というと、どういうふうにすればいいでしょうか?
Re: 画面に常駐するウィンドウのつくり方
Posted: 2017年5月27日(土) 14:40
by フトコロ
以下は、マップシーンに常駐するウィンドウを表示するコードです。
これをコピーしてJSファイルを作成してプラグイン管理に登録すれば、何も表示しないウィンドウがマップ上に常駐します。
コード: 全て選択
(function() {
_addWindow_Scene_Map_start = Scene_Map.prototype.start;
Scene_Map.prototype.start = function() {
_addWindow_Scene_Map_start.call(this);
this.addInfoWindow();
};
Scene_Map.prototype.addInfoWindow = function() {
this._InfoWindow = new Window_Base(0,0,100,100);
this.addWindow(this._InfoWindow);
};
})();
WS_gauge.prototype.drawWindowに相当する処理が Scene_Map.prototype.addInfoWindow ですが
これをScene_Map.prototype.start内で実行してます。
メニューを閉じるときやマップ移動すると消えるのは、このときにシーンを作り直しているためです。
作り直した後に、再度ウィンドウを表示させる処理を実行しないといけません。
Scene_Map.prototype.startは、マップシーンの開始時に必ず実行する処理です。
そのため、この中にウィンドウを追加する処理を書き加えれば、常駐できます。
Re: 画面に常駐するウィンドウのつくり方
Posted: 2017年5月27日(土) 20:13
by ハタマル。
ありがとうございます!
確かに移動したりメニューを閉じても消えないウィンドウになりました
これをベースに組んでいこうと思います
ちなみに、今回はstateに描き込んでいただいたのでゲーム起動と同時に表示されますが
プラグインの関係上、プラグイン起動と同時に表示されるようにいじってみたいと思います
Re: 画面に常駐するウィンドウのつくり方
Posted: 2017年5月28日(日) 11:21
by ハタマル。
>フトコロ様
上手くいくようになりました!
少し変則的な処理にしてしまいましたが……
助言ありがとうございました