/*:
* @plugindesc Allows developers to set a map to be used as the background of their title screen.
* @author SumRndmDde
*
* @param Map ID
* @desc The ID of the map used in the Title Screen.
* @default 1
*
* @help
*
* Title Map Background
* Version 1.01
* SumRndmDde
*
*
* This plugin allows developers to set a map to be used as the background of
* their title screen.
*
* Simply set the "Map ID" Parameter to the map you wish to use on the title.
*
* This map will play out normally like any map would within the game.
* Events will act/move through the map, and all the animated tiles will be
* animated.
*
*
* ==============================================================================
* Setting up a Camera
* ==============================================================================
*
* Now, an important thing to keep in mind about the Title-Map is that it will
* not have the Player within it. Instead, the "camera" will be positioned in
* the top-left of the map. However, you can set up an event to act as the
* position the camera will focus on, similar to how the camera focuses on the
* player during the game.
*
* Simply use the notetag:
*
*
*
* inside the notebox of an event within the Title-Map, and the camera will
* follow that event around in the title screen.
*
*
* ==============================================================================
* End of Help File
* ==============================================================================
*
* Welcome to the bottom of the Help file.
*
*
* Thanks for reading!
* If you have questions, or if you enjoyed this Plugin, please check
* out my YouTube channel!
*
* https://www.youtube.com/c/SumRndmDde
*
*
* Until next time,
* ~ SumRndmDde
*/
/*:ja
* @plugindesc タイトル画面の背景にマップを使用できます。
* @author SumRndmDde
*
* @param Map ID
* @text マップID
* @type number
* @min 1
* @desc タイトル画面で使用するマップID
* @default 1
*
* @help
* 翻訳:ムノクラ
* https://fungamemake.com/
* https://twitter.com/munokura/
*
* 元プラグイン: http://sumrndm.site/title-map-background/
*
*
* Title Map Background
* Version 1.01
* SumRndmDde
*
*
* タイトル画面の背景にマップを使用できます。
*
* 'Map ID'パラメータに、タイトルに使用したいマップを設定します。
*
* このマップは、ゲーム内の他のマップと同じように動作します。
* イベントは、マップを介して行動/移動し、
* 全てのアニメーションタイルがアニメーション化されます。
*
*
* ==========================================================================
* カメラの設定
* ==========================================================================
*
* タイトルマップの注意点ですが、
* タイトルマップにはプレイヤーは含まれていません。
* その代わり、'カメラ'がマップの左上に配置されます。
* ゲーム中にカメラがプレイヤーにフォーカスするのと同じように、
* カメラがフォーカスする位置としてイベントを設定することができます。
*
* 下記のメモタグを使います。
*
*
*
* タイトルマップ内のイベントのメモ欄の中に入れると、
* カメラはタイトル画面内でそのイベントを追いかけます。
*
*
* ==========================================================================
* ヘルプファイルの終わり
* ==========================================================================
*
* ヘルプファイルの終わりへようこそ。
*
* 読んでくれてありがとう!
* 質問があったり、このプラグインを楽しめたら、
* 私のYouTubeチャンネルを登録してください!!
*
* https://www.youtube.com/c/SumRndmDde
*
*
* 次の機会まで
* ~ SumRndmDde
*/
var SRD = SRD || {};
SRD.TitleMapBackground = SRD.TitleMapBackground || {};
var Imported = Imported || {};
Imported["SumRndmDde Title Map Background"] = 1.01;
function Scene_TitleMapBackground() {
this.initialize.apply(this, arguments);
}
(function (_) {
"use strict";
var params = PluginManager.parameters('SRD_TitleMapBackground');
//-----------------------------------------------------------------------------
// SRD.TitleMapBackground
//-----------------------------------------------------------------------------
_.mapId = parseInt(params['Map ID']);
//-----------------------------------------------------------------------------
// Game_Map
//-----------------------------------------------------------------------------
Game_Map.prototype.setDisplayPosWOParallax = function (x, y) {
if (this.isLoopHorizontal()) {
this._displayX = x.mod(this.width());
} else {
var endX = this.width() - this.screenTileX();
this._displayX = endX < 0 ? endX / 2 : x.clamp(0, endX);
}
if (this.isLoopVertical()) {
this._displayY = y.mod(this.height());
} else {
var endY = this.height() - this.screenTileY();
this._displayY = endY < 0 ? endY / 2 : y.clamp(0, endY);
}
};
//-----------------------------------------------------------------------------
// Scene_TitleMapBackground
//-----------------------------------------------------------------------------
Scene_TitleMapBackground.prototype = Object.create(Scene_Map.prototype);
Scene_TitleMapBackground.prototype.constructor = Scene_TitleMapBackground;
Scene_TitleMapBackground.prototype.create = function () {
Scene_Base.prototype.create.call(this);
};
Scene_TitleMapBackground.prototype.createSpriteset = function () {
this._spriteset = new Spriteset_TitleMapBackground();
this.addChild(this._spriteset);
};
Scene_TitleMapBackground.prototype.onMapLoaded = function () {
this.createDisplayObjects();
};
Scene_TitleMapBackground.prototype.updateMain = function () {
var active = this.isActive();
$gameMap.update(active);
//$gamePlayer.update(active);
$gameTimer.update(active);
$gameScreen.update();
};
Scene_TitleMapBackground.prototype.stop = function () {
Scene_Base.prototype.stop.call(this);
this._mapNameWindow.close();
};
Scene_TitleMapBackground.prototype.updateTransferPlayer = function () { };
Scene_TitleMapBackground.prototype.updateDestination = function () { };
Scene_TitleMapBackground.prototype.processMapTouch = function () { };
Scene_TitleMapBackground.prototype.updateEncounter = function () { };
Scene_TitleMapBackground.prototype.updateScene = function () { };
Scene_TitleMapBackground.prototype.updateCallMenu = function () { };
//-----------------------------------------------------------------------------
// Spriteset_TitleMapBackground
//-----------------------------------------------------------------------------
function Spriteset_TitleMapBackground() {
this.initialize.apply(this, arguments);
}
Spriteset_TitleMapBackground.prototype = Object.create(Spriteset_Map.prototype);
Spriteset_TitleMapBackground.prototype.constructor = Spriteset_TitleMapBackground;
var _Spriteset_TitleMapBackground_initialize = Spriteset_TitleMapBackground.prototype.initialize;
Spriteset_TitleMapBackground.prototype.initialize = function () {
_Spriteset_TitleMapBackground_initialize.apply(this, arguments);
var events = $gameMap.events();
if (events.length === 0) this._titleCameraId = 0;
for (var i = 0; i < events.length; i++) {
if (events[i].event().note.match(//i)) {
this._titleCameraId = (i + 1);
break;
}
}
};
Spriteset_TitleMapBackground.prototype.updateTilemap = function () {
if (this._titleCameraId) {
var event = $gameMap.event(this._titleCameraId);
if (!event) return;
var x = event._realX;
var y = event._realY;
$gameMap.setDisplayPosWOParallax(x - this.centerX(), y - this.centerY());
this._tilemap.origin.x = $gameMap.displayX() * $gameMap.tileWidth();
this._tilemap.origin.y = $gameMap.displayY() * $gameMap.tileHeight();
} else {
this._tilemap.origin.x = 0;
this._tilemap.origin.y = 0;
}
};
Spriteset_TitleMapBackground.prototype.centerX = function () {
return (Graphics.width / $gameMap.tileWidth() - 1) / 2.0;
};
Spriteset_TitleMapBackground.prototype.centerY = function () {
return (Graphics.height / $gameMap.tileHeight() - 1) / 2.0;
};
//-----------------------------------------------------------------------------
// Scene_Title
//-----------------------------------------------------------------------------
var _Scene_Title_create = Scene_Title.prototype.create;
Scene_Title.prototype.create = function () {
_Scene_Title_create.apply(this, arguments);
this.removeChild(this._backSprite1);
this.removeChild(this._backSprite2)
DataManager.loadMapData(_.mapId);
};
var _Scene_Title_update = Scene_Title.prototype.update;
Scene_Title.prototype.update = function () {
_Scene_Title_update.apply(this, arguments);
if (this.isActive()) this.updateMapFusionScene();
};
Scene_Title.prototype.updateMapFusionScene = function () {
if ($dataMap && !this._loadedMap) {
DataManager.createGameObjects();
$gameMap.setup(_.mapId);
this._mapFusion = new Scene_TitleMapBackground();
this._mapFusion.create();
SceneManager.onSceneCreate();
this._loadedMap = true;
}
if (this._mapFusion && this._loadedMap) {
if (!this._sceneStarted && this._mapFusion.isReady()) {
this._mapFusion.start();
this._mapFusion.update();
this._sceneStarted = true;
this.addChildAt(this._mapFusion, 0);
SceneManager.onSceneStart();
}
}
};
var _Scene_Title_commandNewGame = Scene_Title.prototype.commandNewGame;
Scene_Title.prototype.commandNewGame = function () {
this._mapFusionSnap = new Sprite();
this._mapFusionSnap.bitmap = Bitmap.snap(this._mapFusion);
this.addChildAt(this._mapFusionSnap, 0);
this.removeChild(this._mapFusion);
_Scene_Title_commandNewGame.apply(this, arguments);
};
})(SRD.TitleMapBackground);