You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
250 lines
8.5 KiB
JavaScript
250 lines
8.5 KiB
JavaScript
3 years ago
|
//=============================================================================
|
||
|
// Salted Fish Plugins - Scene Splash
|
||
|
// SF_SceneSplash.js
|
||
|
//=============================================================================
|
||
|
|
||
|
"use strict";
|
||
|
var Imported = Imported || {};
|
||
|
Imported.SF_SceneSplash = true;
|
||
|
|
||
|
var SF_Plugins = SF_Plugins || {};
|
||
|
|
||
|
//=============================================================================
|
||
|
/*:
|
||
|
* @plugindesc v1.0.0 - Scene Splash
|
||
|
* @author Salted Fish
|
||
|
*
|
||
|
* @help
|
||
|
*
|
||
|
* ===========================================================================
|
||
|
* Introduction
|
||
|
* ===========================================================================
|
||
|
*
|
||
|
* This plugin adds a splash scene after Scene_Boot.
|
||
|
*/
|
||
|
//=============================================================================
|
||
|
|
||
|
(function () {
|
||
|
var SF_SceneSplash = {};
|
||
|
SF_Plugins.SF_SceneSplash = SF_SceneSplash;
|
||
|
|
||
|
SF_SceneSplash.version = 1.0;
|
||
|
|
||
|
SF_SceneSplash.FADE_IN_FRAMES = 60; // Number of frames for the fade in effect.
|
||
|
SF_SceneSplash.FADE_OUT_FRAMES = 60;// Number of frames for the fade out effect.
|
||
|
SF_SceneSplash.SHOW_TIME = 150;// Number of frames for the splash to be shown.
|
||
|
|
||
|
//=============================================================================
|
||
|
// Sprite_SplashBase
|
||
|
//=============================================================================
|
||
|
|
||
|
function Sprite_SplashBase() {
|
||
|
this.initialize.apply(this, arguments);
|
||
|
}
|
||
|
|
||
|
Sprite_SplashBase.prototype = Object.create(Sprite.prototype);
|
||
|
Sprite_SplashBase.prototype.constructor = Sprite_SplashBase;
|
||
|
|
||
|
Sprite_SplashBase.prototype.initialize = function (index) {
|
||
|
Sprite.prototype.initialize.call(this);
|
||
|
this.state = "fadeIn";// "fadeIn", "show", "fadeOut"
|
||
|
this.FADE_IN_FRAMES = SF_SceneSplash.FADE_IN_FRAMES;
|
||
|
this.FADE_OUT_FRAMES = SF_SceneSplash.FADE_OUT_FRAMES;
|
||
|
this.SHOW_TIME = SF_SceneSplash.SHOW_TIME;
|
||
|
this.index = index;
|
||
|
this.showTime = 0;
|
||
|
this.opacity = 0;
|
||
|
}
|
||
|
|
||
|
Sprite_SplashBase.prototype.update = function () {
|
||
|
Sprite.prototype.update.call(this);
|
||
|
|
||
|
if (TouchInput.isTriggered()) {
|
||
|
this.state = "fadeOut";
|
||
|
}
|
||
|
|
||
|
if (this.state === "fadeIn") {
|
||
|
this.updateFadeIn();
|
||
|
} else if (this.state === "show") {
|
||
|
this.updateShow();
|
||
|
} else if (this.state === "fadeOut") {
|
||
|
this.updateFadeOut();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
Sprite_SplashBase.prototype.updateFadeIn = function () {
|
||
|
this.opacity += 255 / this.FADE_IN_FRAMES;
|
||
|
if (this.opacity >= 255) {
|
||
|
this.opacity = 255;
|
||
|
this.state = "show";
|
||
|
}
|
||
|
}
|
||
|
|
||
|
Sprite_SplashBase.prototype.updateShow = function () {
|
||
|
this.opacity = 255;
|
||
|
this.updateShowTime();
|
||
|
}
|
||
|
|
||
|
Sprite_SplashBase.prototype.updateShowTime = function () {
|
||
|
this.showTime++;
|
||
|
if (this.showTime >= this.SHOW_TIME) {
|
||
|
this.state = "fadeOut";
|
||
|
}
|
||
|
}
|
||
|
|
||
|
Sprite_SplashBase.prototype.updateFadeOut = function () {
|
||
|
this.opacity -= 255 / this.FADE_OUT_FRAMES;
|
||
|
if (this.opacity <= 0) {
|
||
|
this.opacity = 0;
|
||
|
this.state = "fadeIn";
|
||
|
this.showTime = 0;
|
||
|
|
||
|
if (this.index + 1 < SF_SceneSplash.SpriteClassList.length) {
|
||
|
var spriteClass = SF_SceneSplash.SpriteClassList[this.index + 1];
|
||
|
var sprite = new spriteClass(this.index + 1);
|
||
|
this.parent.addChild(sprite);
|
||
|
} else {
|
||
|
SceneManager.pop();
|
||
|
}
|
||
|
|
||
|
this.parent.removeChild(this);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
Sprite_SplashBase.prototype.centerSelf = function () {
|
||
|
this.anchor.x = 0.5;
|
||
|
this.anchor.y = 0.5;
|
||
|
this.x = Graphics.width / 2;
|
||
|
this.y = Graphics.height / 2;
|
||
|
}
|
||
|
|
||
|
//=============================================================================
|
||
|
// Sprite_SplashLogo
|
||
|
//=============================================================================
|
||
|
|
||
|
function Sprite_SplashLogo() {
|
||
|
this.initialize.apply(this, arguments);
|
||
|
}
|
||
|
|
||
|
Sprite_SplashLogo.prototype = Object.create(Sprite_SplashBase.prototype);
|
||
|
Sprite_SplashLogo.prototype.constructor = Sprite_SplashLogo;
|
||
|
|
||
|
Sprite_SplashLogo.prototype.initialize = function (index) {
|
||
|
Sprite_SplashBase.prototype.initialize.call(this, index);
|
||
|
this.bitmap = ImageManager.loadSceneSplash("spalsh_logo");
|
||
|
this.centerSelf();
|
||
|
}
|
||
|
|
||
|
//=============================================================================
|
||
|
// Sprite_SplashHealthTip
|
||
|
//=============================================================================
|
||
|
|
||
|
function Sprite_SplashHealthTip() {
|
||
|
this.initialize.apply(this, arguments);
|
||
|
}
|
||
|
|
||
|
Sprite_SplashHealthTip.prototype = Object.create(Sprite_SplashBase.prototype);
|
||
|
Sprite_SplashHealthTip.prototype.constructor = Sprite_SplashHealthTip;
|
||
|
|
||
|
Sprite_SplashHealthTip.prototype.initialize = function (index) {
|
||
|
Sprite_SplashBase.prototype.initialize.call(this, index);
|
||
|
this.bitmap = ImageManager.loadSceneSplash("spalsh_health_tip");
|
||
|
this.centerSelf();
|
||
|
}
|
||
|
|
||
|
//=============================================================================
|
||
|
// Sprite_SplashAdapted
|
||
|
//=============================================================================
|
||
|
|
||
|
function Sprite_SplashAdapted() {
|
||
|
this.initialize.apply(this, arguments);
|
||
|
}
|
||
|
|
||
|
Sprite_SplashAdapted.prototype = Object.create(Sprite_SplashBase.prototype);
|
||
|
Sprite_SplashAdapted.prototype.constructor = Sprite_SplashAdapted;
|
||
|
|
||
|
Sprite_SplashAdapted.prototype.initialize = function (index) {
|
||
|
Sprite_SplashBase.prototype.initialize.call(this, index);
|
||
|
this.bitmap = ImageManager.loadSceneSplash("splash_adapted");
|
||
|
this.centerSelf();
|
||
|
}
|
||
|
|
||
|
//=============================================================================
|
||
|
// Sprite_SplashEnd
|
||
|
//=============================================================================
|
||
|
|
||
|
function Sprite_SplashEnd() {
|
||
|
this.initialize.apply(this, arguments);
|
||
|
}
|
||
|
|
||
|
Sprite_SplashEnd.prototype = Object.create(Sprite_SplashBase.prototype);
|
||
|
Sprite_SplashEnd.prototype.constructor = Sprite_SplashEnd;
|
||
|
|
||
|
Sprite_SplashEnd.prototype.initialize = function (index) {
|
||
|
Sprite_SplashBase.prototype.initialize.call(this, index);
|
||
|
SceneManager.pop();
|
||
|
}
|
||
|
|
||
|
//=============================================================================
|
||
|
// Sprite Class for Scene Splash
|
||
|
//=============================================================================
|
||
|
|
||
|
SF_SceneSplash.SpriteClassList = [
|
||
|
Sprite_SplashLogo, Sprite_SplashHealthTip, Sprite_SplashAdapted, Sprite_SplashEnd
|
||
|
];
|
||
|
|
||
|
//=============================================================================
|
||
|
// Scene_Splash
|
||
|
//=============================================================================
|
||
|
|
||
|
function Scene_Splash() {
|
||
|
this.initialize.apply(this, arguments);
|
||
|
}
|
||
|
window.Scene_Splash = Scene_Splash;
|
||
|
SF_SceneSplash.Scene_Splash = Scene_Splash;
|
||
|
|
||
|
Scene_Splash.prototype = Object.create(Scene_Base.prototype);
|
||
|
Scene_Splash.prototype.constructor = Scene_Splash;
|
||
|
|
||
|
Scene_Splash.prototype.initialize = function () {
|
||
|
Scene_Base.prototype.initialize.call(this);
|
||
|
}
|
||
|
|
||
|
Scene_Splash.prototype.create = function () {
|
||
|
Scene_Base.prototype.create.call(this);
|
||
|
this.createBackground();
|
||
|
this.createSplash();
|
||
|
}
|
||
|
|
||
|
Scene_Splash.prototype.createBackground = function () {
|
||
|
var bitmap = new Bitmap(Graphics.width, Graphics.height);
|
||
|
bitmap.fillAll("white");
|
||
|
this._backgroundSprite = new Sprite(bitmap);
|
||
|
this.addChild(this._backgroundSprite);
|
||
|
}
|
||
|
|
||
|
Scene_Splash.prototype.createSplash = function () {
|
||
|
var spriteClass = SF_SceneSplash.SpriteClassList[0];
|
||
|
var sprite = new spriteClass(0);
|
||
|
this.addChild(sprite);
|
||
|
}
|
||
|
|
||
|
Scene_Splash.prototype.start = function () {
|
||
|
Scene_Base.prototype.start.call(this);
|
||
|
}
|
||
|
|
||
|
Scene_Splash.prototype.update = function () {
|
||
|
Scene_Base.prototype.update.call(this);
|
||
|
}
|
||
|
|
||
|
//=============================================================================
|
||
|
// SceneManager
|
||
|
//=============================================================================
|
||
|
|
||
|
SF_SceneSplash.SceneManager_initialize = SceneManager.initialize;
|
||
|
SceneManager.initialize = function () {
|
||
|
SF_SceneSplash.SceneManager_initialize.apply(this, arguments);
|
||
|
this.addSceneBefore(Scene_Splash, Scene_Title);
|
||
|
}
|
||
|
|
||
|
})();
|