67 lines
2.9 KiB
JavaScript
67 lines
2.9 KiB
JavaScript
/*:
|
||
* @target MZ
|
||
* @plugindesc ピクチャID30~36をメッセージウィンドウよりも上に表示するが、フェードアウト時はフェードが優先されるように調整します。
|
||
* @author
|
||
*
|
||
* @help
|
||
* このプラグインは、ツクールMZにおいてピクチャID30~36の画像を
|
||
* メッセージウィンドウよりも上に表示しますが、フェードアウト時はフェード用スプライトが上に表示されるようにします。
|
||
*
|
||
* 【使い方】
|
||
* 1. このファイルをプロジェクトの「js/plugins」フォルダに保存してください。
|
||
* 2. ツクールMZのプラグインマネージャーで本プラグインをONにしてください。
|
||
*
|
||
* 特にプラグインコマンドはありません。
|
||
*
|
||
* (MIT License)
|
||
*/
|
||
|
||
(function() {
|
||
'use strict';
|
||
|
||
// シーンの全ウィンドウ作成後に、上部ピクチャ用のコンテナを作成
|
||
const _Scene_Map_createAllWindows = Scene_Map.prototype.createAllWindows;
|
||
Scene_Map.prototype.createAllWindows = function() {
|
||
_Scene_Map_createAllWindows.call(this);
|
||
this.createUpperPictureContainer();
|
||
// 作成時にもフェードスプライトを最前面に移動
|
||
this.bringFadeSpriteToTop();
|
||
};
|
||
|
||
Scene_Map.prototype.createUpperPictureContainer = function() {
|
||
this._upperPictureContainer = new Sprite();
|
||
// ウィンドウレイヤーの後に追加することで、ウィンドウよりも上に表示されます
|
||
this.addChild(this._upperPictureContainer);
|
||
};
|
||
|
||
// フェード用スプライトをシーン内の最前面に移動する関数
|
||
Scene_Map.prototype.bringFadeSpriteToTop = function() {
|
||
if (this._fadeSprite) {
|
||
this.removeChild(this._fadeSprite);
|
||
this.addChild(this._fadeSprite);
|
||
}
|
||
};
|
||
|
||
// 毎フレーム更新時にフェードスプライトを最前面へ
|
||
const _Scene_Map_update = Scene_Map.prototype.update;
|
||
Scene_Map.prototype.update = function() {
|
||
_Scene_Map_update.call(this);
|
||
this.bringFadeSpriteToTop();
|
||
};
|
||
|
||
// Sprite_Pictureの更新処理を上書きし、ID30~36のピクチャを上部コンテナに移動
|
||
const _Sprite_Picture_update = Sprite_Picture.prototype.update;
|
||
Sprite_Picture.prototype.update = function() {
|
||
_Sprite_Picture_update.call(this);
|
||
if (this._pictureId >= 30 && this._pictureId <= 36) {
|
||
// すでに上部コンテナに所属していない場合、移動させる
|
||
if (SceneManager._scene && SceneManager._scene._upperPictureContainer && this.parent !== SceneManager._scene._upperPictureContainer) {
|
||
if (this.parent) {
|
||
this.parent.removeChild(this);
|
||
}
|
||
SceneManager._scene._upperPictureContainer.addChild(this);
|
||
}
|
||
}
|
||
};
|
||
|
||
})();
|