235 lines
6.8 KiB
JavaScript
235 lines
6.8 KiB
JavaScript
//=============================================================================
|
|
// MOG_TitleSplashScreen.js
|
|
//=============================================================================
|
|
|
|
/*:
|
|
* @target MZ
|
|
* @plugindesc (v1.0) Adiciona logos antes da tela de título.
|
|
* @author Moghunter
|
|
* @url https://mogplugins.wordpress.com
|
|
*
|
|
* @param Number of Logos
|
|
* @desc Quantidade de logos.
|
|
* (Default = 2)
|
|
* @default 2
|
|
* @type number
|
|
*
|
|
* @param Slash Duration
|
|
* @desc Duração do logo.
|
|
* (Default = 60)
|
|
* @default 60
|
|
* @type number
|
|
*
|
|
* @param Splash Fade Duration
|
|
* @desc Velocidade do fade.
|
|
* (Default = 2)
|
|
* @default 2
|
|
* @type number
|
|
*
|
|
* @param Fit Screen Resolution
|
|
* @desc Força a imagem ter a mesma resolução da tela.
|
|
* @default true
|
|
* @type boolean
|
|
*
|
|
* @help
|
|
* =============================================================================
|
|
* +++ MOG - Title Splash Screen (v1.0) +++
|
|
* By Moghunter
|
|
* https://mogplugins.wordpress.com
|
|
* =============================================================================
|
|
* Adiciona multiplos logos antes da tela de título.
|
|
* Serão necessários os arquivos.
|
|
*
|
|
* Splash_INDEX.png
|
|
*
|
|
* no lugar da INDEX coloque a numeração da imagem.
|
|
*
|
|
* Splash_0.png
|
|
* Splash_1.png
|
|
* Splash_2.png
|
|
* ...
|
|
*
|
|
* Coloque as imagens na pasta:
|
|
*
|
|
* img/titles2/
|
|
*
|
|
*/
|
|
|
|
//=============================================================================
|
|
// ** PLUGIN PARAMETERS
|
|
//=============================================================================
|
|
var Imported = Imported || {};
|
|
Imported.MOG_TitleSplashScreen = true;
|
|
var Moghunter = Moghunter || {};
|
|
|
|
Moghunter.parameters = PluginManager.parameters("MOG_TitleSplashScreen");
|
|
Moghunter.title_splash_fitScreen = String(
|
|
Moghunter.parameters["Fit Screen Resolution"] || "true"
|
|
);
|
|
Moghunter.title_splash_number = Number(
|
|
Moghunter.parameters["Number of Logos"] || 1
|
|
);
|
|
Moghunter.title_splash_duration = Number(
|
|
Moghunter.parameters["Slash Duration"] || 60
|
|
);
|
|
Moghunter.title_splash_fade_speed = Number(
|
|
Moghunter.parameters["Splash Fade Duration"] || 2
|
|
);
|
|
|
|
//=============================================================================
|
|
// ■ Scene Boot ■
|
|
//=============================================================================
|
|
|
|
//==============================
|
|
// ♦ ALIAS ♦ Start Normal Game
|
|
//==============================
|
|
var _mog_splashScreen_scnboot_startNormalGame =
|
|
Scene_Boot.prototype.startNormalGame;
|
|
Scene_Boot.prototype.startNormalGame = function () {
|
|
_mog_splashScreen_scnboot_startNormalGame.call(this);
|
|
SceneManager.goto(Scene_Splash_Screen);
|
|
};
|
|
|
|
//=============================================================================
|
|
// ■ Scene Splash Screen ■
|
|
//=============================================================================
|
|
function Scene_Splash_Screen() {
|
|
this.initialize.apply(this, arguments);
|
|
}
|
|
|
|
Scene_Splash_Screen.prototype = Object.create(Scene_Base.prototype);
|
|
Scene_Splash_Screen.prototype.constructor = Scene_Splash_Screen;
|
|
|
|
//==============================
|
|
// * Create
|
|
//==============================
|
|
Scene_Splash_Screen.prototype.create = function () {
|
|
Scene_Base.prototype.create.call(this);
|
|
this._splash_data = [
|
|
0,
|
|
0,
|
|
Math.max(Moghunter.title_splash_duration, 1),
|
|
Math.max(Moghunter.title_splash_fade_speed, 1),
|
|
];
|
|
this._splash_img = [];
|
|
this._splash_sprite = new Sprite();
|
|
this._splash_sprite.anchor.x = 0.5;
|
|
this._splash_sprite.anchor.y = 0.5;
|
|
this._splash_sprite.x = Graphics.width / 2;
|
|
this._splash_sprite.y = Graphics.height / 2;
|
|
this.addChild(this._splash_sprite);
|
|
for (i = 0; i < Moghunter.title_splash_number; i++) {
|
|
this._splash_img.push(ImageManager.loadTitle2("Splash_" + i));
|
|
}
|
|
};
|
|
|
|
//==============================
|
|
// * Refresh Splash Screen
|
|
//==============================
|
|
Scene_Splash_Screen.prototype.refresh_splash_screen = function () {
|
|
if (this._splash_data[0] >= this._splash_img.length) {
|
|
AudioManager.stopMe();
|
|
this.checkPlayerLocation();
|
|
DataManager.setupNewGame();
|
|
SceneManager.goto(Scene_Title);
|
|
Window_TitleCommand.initCommandPosition();
|
|
return;
|
|
}
|
|
this._splash_sprite.bitmap = this._splash_img[this._splash_data[0]];
|
|
this._splash_sprite.opacity = 0;
|
|
this._splash_data[0] += 1;
|
|
this._splash_data[1] = this._splash_data[2];
|
|
if (this.needFitScreen()) {
|
|
this.fitScreen();
|
|
}
|
|
};
|
|
|
|
//==============================
|
|
// * Fit Screen
|
|
//==============================
|
|
Scene_Splash_Screen.prototype.fitScreen = function () {
|
|
if (this._splash_sprite.bitmap.width < Graphics.width) {
|
|
this._splash_sprite.scale.x =
|
|
Graphics.width / this._splash_sprite.bitmap.width;
|
|
}
|
|
if (this._splash_sprite.bitmap.height < Graphics.height) {
|
|
this._splash_sprite.scale.y =
|
|
Graphics.height / this._splash_sprite.bitmap.height;
|
|
}
|
|
};
|
|
|
|
//==============================
|
|
// * needFitScreen
|
|
//==============================
|
|
Scene_Splash_Screen.prototype.needFitScreen = function () {
|
|
if (Moghunter.title_splash_fitScreen != "true") {
|
|
return false;
|
|
}
|
|
return true;
|
|
};
|
|
|
|
//==============================
|
|
// * Check Player Location
|
|
//==============================
|
|
Scene_Splash_Screen.prototype.checkPlayerLocation = function () {
|
|
if ($dataSystem.startMapId === 0) {
|
|
throw new Error("Player's starting position is not set");
|
|
}
|
|
};
|
|
|
|
//==============================
|
|
// * Start
|
|
//==============================
|
|
Scene_Splash_Screen.prototype.start = function () {
|
|
Scene_Base.prototype.start.call(this);
|
|
this.startFadeIn(this.fadeSpeed(), false);
|
|
};
|
|
|
|
//==============================
|
|
// * getData
|
|
//==============================
|
|
Scene_Splash_Screen.prototype.getData = function () {
|
|
this._splash_sprite.data = true;
|
|
this.refresh_splash_screen();
|
|
};
|
|
|
|
//==============================
|
|
// * Update Splash Screen
|
|
//==============================
|
|
Scene_Splash_Screen.prototype.updateSplashScreen = function () {
|
|
if (!this._splash_sprite.data) {
|
|
if (this._splash_img[0].isReady()) {
|
|
this.getData();
|
|
}
|
|
return;
|
|
}
|
|
if (this._splash_data[1] <= 0) {
|
|
this._splash_sprite.opacity -= this._splash_data[3];
|
|
if (Input.isTriggered("ok") || TouchInput.isTriggered()) {
|
|
this._splash_data[0] = this._splash_img.length;
|
|
}
|
|
if (this._splash_sprite.opacity <= 0) {
|
|
this.refresh_splash_screen();
|
|
}
|
|
} else {
|
|
this._splash_sprite.opacity += this._splash_data[3];
|
|
if (
|
|
(Input.isTriggered("ok") || TouchInput.isTriggered()) &&
|
|
this._splash_sprite.opacity > 60
|
|
) {
|
|
this._splash_data[1] = 0;
|
|
this._splash_data[0] = this._splash_img.length;
|
|
}
|
|
if (this._splash_sprite.opacity >= 255) {
|
|
this._splash_data[1] -= 1;
|
|
}
|
|
}
|
|
};
|
|
|
|
//==============================
|
|
// * Update
|
|
//==============================
|
|
Scene_Splash_Screen.prototype.update = function () {
|
|
Scene_Base.prototype.update.call(this);
|
|
this.updateSplashScreen();
|
|
};
|