crypts-tear/www/js/plugins/MN_ShowPictureExtend.js
2023-07-07 20:03:33 -05:00

108 lines
No EOL
4.3 KiB
JavaScript

//=============================================================================
// MN_ShowPictureExtend - 画像の表示拡張
// ---------------------------------------------------------------------------
// author: minazuki
// ---------------------------------------------------------------------------
// ver:
// 1.0 (2020-05-15) 初版
// ---------------------------------------------------------------------------
// Copyright (c) 2020 minazuki
// Released under the MIT license
// https://opensource.org/licenses/mit-license.php
//=============================================================================
/*:
* @plugindesc 画像表示を拡張 picturesのサブフォルダや別フォルダの画像が表示可能に
* @author minazuki
* @help
*
* --- 概要 --------------------------------------------------------------
* $gameScreen.showPicture() では、pictureフォルダ直下の画像しか
* 表示できませんでした。このプラグインを導入すると、ファイル名に
* フォルダパスを入れた場合にはpictureフォルダ内のフォルダを参照して
* 画像を表示することができます。また、ファイル名の先頭に'/'を入力すると
* プロジェクトフォルダからのパスとなり、プロジェクト内のどの画像も
* 表示することができます。
*
*
* --- 導入方法 ----------------------------------------------------------
* プラグインマネージャで読み込むだけで動作します。
* 設定項目はありません。
*
*
* --- 使い方 ------------------------------------------------------------
* $gameScreen.showPicture()のファイル名にファイルパス指定ができます。
* それだけです。詳しい使い方は以下の例をどうぞ。
* ※「./」「../」は使用できません。
*
*
* --- 例 ----------------------------------------------------------------
* exp.1) picturesフォルダ内のサブフォルダにある画像を表示する
*
* img / pictures / サブフォルダ / image.png
* の「image.png」を表示したい
* -> $gameScreen.showPicture()のファイル名部分に
* 'サブフォルダ/image' と指定する。
*
*
* exp.2) exp.1 より更に下層のフォルダにある画像を表示する
*
* img / pictures / サブフォルダ / サブフォルダ2 / image.png
* の「image.png」を表示したい
* -> $gameScreen.showPicture()のファイル名部分に
* 'サブフォルダ/サブフォルダ2/image' と指定する。
*
*
* exp.3) enemiesフォルダ内の画像を表示する
*
* img / enemies / enemyImage.png
* の「enemyImage.png」を表示したい
* -> $gameScreen.showPicture()のファイル名部分に
* '/img/enemies/enemyImage' と指定する。
*
* ※先頭の'/'に注意!!
*
*
* exp.4) enemiesフォルダ内のサブフォルダにある画像を表示する
*
* img / enemies / サブフォルダ / enemyImage.png
* の「enemyImage.png」を表示したい
* -> $gameScreen.showPicture()のファイル名部分に
* '/img/enemies/サブフォルダ/enemyImage' と指定する。
*
* ※先頭の'/'に注意!!
*
*
* exp.5) プロジェクトフォルダ直下の画像を表示する
*
* (projectフォルダ) / projectImage.png
* の「projectImage.png」を表示したい
* -> $gameScreen.showPicture()のファイル名部分に
* '/projectImage' と指定する。
*
* ※先頭の'/'に注意!!
*
*
*/
(function () {
'use strict';
const defaultFilePath = 'img/pictures/';
const separator = '/';
const sepReg = new RegExp(separator);
var ImageManager_loadPicture = ImageManager.loadPicture;
ImageManager.loadPicture = function (filename, hue) {
if (filename.match(sepReg)) {
var fn = filename.split(separator);
var path = filename.slice(0, 1) == separator ? fn.shift() : defaultFilePath;
for (var i = 0; i < fn.length - 1; i++) {
path += fn[i] + separator;
}
return this.loadBitmap(path, fn[fn.length - 1], hue, true);
}
return ImageManager_loadPicture.call(this, filename, hue);
};
})();