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.
203 lines
6.5 KiB
JavaScript
203 lines
6.5 KiB
JavaScript
//=============================================================================
|
|
// Salted Fish Plugins - Scene Menu
|
|
// SF_SceneMenu.js
|
|
//=============================================================================
|
|
|
|
var Imported = Imported || {};
|
|
Imported.SF_SceneMenu = true;
|
|
|
|
var SF_Plugins = SF_Plugins || {};
|
|
|
|
//=============================================================================
|
|
/*:
|
|
* @plugindesc Scene Menu
|
|
* @author SaltedFish
|
|
*
|
|
* @help
|
|
*
|
|
* This plugin does not provide plugin commands.
|
|
*/
|
|
//=============================================================================
|
|
|
|
(function () {
|
|
var SF_SceneMenu = {};
|
|
SF_Plugins.SF_SceneMenu = SF_SceneMenu;
|
|
SF_SceneMenu.version = 1.0;
|
|
|
|
|
|
SF_SceneMenu.dialogContents = ['文本文本文本文本文本'];
|
|
|
|
//=============================================================================
|
|
// Sprite Dialog
|
|
//=============================================================================
|
|
|
|
function Sprite_Dialog() {
|
|
this.initialize.apply(this, arguments);
|
|
}
|
|
|
|
Sprite_Dialog.prototype = Object.create(Sprite.prototype);
|
|
Sprite_Dialog.prototype.constructor = Sprite_Dialog;
|
|
|
|
Sprite_Dialog.prototype.initialize = function () {
|
|
Sprite.prototype.initialize.call(this);
|
|
this._backgroundSprite = new Sprite(ImageManager.loadSceneMenu('dialog_background'));
|
|
this._textSprite = new Sprite();
|
|
this._textSprite.bitmap = new Bitmap(300, 180);
|
|
this._textSprite.move(10, 10);
|
|
this._textSprite.bitmap.fontSize = 24;
|
|
this._textSprite.bitmap.textColor = '#ffffff';
|
|
this.addChild(this._backgroundSprite);
|
|
this.addChild(this._textSprite);
|
|
|
|
this._tmpWindow = new Window_Base(0, 0, this._textSprite.width, this._textSprite.height);
|
|
this._tmpWindow.rotation = 0;
|
|
this._tmpWindow.contents = this._textSprite.bitmap;
|
|
this._tmpWindow.opacity = 0;
|
|
this._needFadeIn = false;
|
|
this._needMoveIn = false;
|
|
}
|
|
|
|
Sprite_Dialog.prototype.setText = function (text) {
|
|
this._tmpWindow.contents.clear();
|
|
this._tmpWindow.drawTextEx(text, 0, 0);
|
|
this._textSprite.bitmap.blt(this._tmpWindow.contents, 0, 0, this._textSprite.width, this._textSprite.height, 0, 0);
|
|
}
|
|
|
|
Sprite_Dialog.prototype.update = function () {
|
|
Sprite.prototype.update.call(this);
|
|
}
|
|
|
|
//=============================================================================
|
|
// Scene Menu
|
|
//=============================================================================
|
|
|
|
Scene_Menu.prototype.initialize = function () {
|
|
Scene_Base.prototype.initialize.call(this);
|
|
this.button_name = {// button name: [x, y]
|
|
'title': [897, 278],
|
|
'actor': [438, 175],
|
|
'formation': [645, 94],
|
|
'save': [868, 94],
|
|
"quest": [756, 278],
|
|
'options': [746, 33],
|
|
'achivement': [645, 278],
|
|
'help': [814, 33],
|
|
'cancel': [678, 463],
|
|
'database': [438, 348],
|
|
'skill': [438, 94]
|
|
};
|
|
}
|
|
|
|
Scene_Menu.prototype.create = function () {
|
|
Scene_Base.prototype.create.call(this);
|
|
this.createWindowLayer();
|
|
|
|
this.createBackSprite();
|
|
this.createRotateContainer();
|
|
|
|
this.createDialog();
|
|
this.createCommandButton();
|
|
|
|
}
|
|
|
|
Scene_Menu.prototype.createRotateContainer = function () {
|
|
this._rotateContainer = new Sprite();
|
|
this.addChild(this._rotateContainer);
|
|
}
|
|
|
|
Scene_Menu.prototype.createBackSprite = function () {
|
|
this._backSprite = new Sprite(ImageManager.loadSceneMenu('background'));
|
|
this.addChild(this._backSprite);
|
|
}
|
|
|
|
Scene_Menu.prototype.createDialog = function () {
|
|
this._dialogSprite = new Sprite_Dialog();
|
|
this._rotateContainer.addChild(this._dialogSprite);
|
|
this._dialogSprite.move(37, 167);
|
|
this._dialogSprite.setText(
|
|
SF_SceneMenu.dialogContents[
|
|
Math.floor(Math.random() * SF_SceneMenu.dialogContents.length)
|
|
]
|
|
);
|
|
}
|
|
|
|
Scene_Menu.prototype.createCommandButton = function () {
|
|
for (var key in this.button_name) {
|
|
var button = new Sprite_SFButton();
|
|
this._rotateContainer.addChild(button);
|
|
|
|
button.move(this.button_name[key][0], this.button_name[key][1]);
|
|
button.setHotBitmap(ImageManager.loadSceneMenu(key + '_hot'));
|
|
button.setColdBitmap(ImageManager.loadSceneMenu(key + '_cold'));
|
|
button.setClickHandler(this['on_' + key + "_button"].bind(this));
|
|
button.deactivate();
|
|
button.refresh();
|
|
this['_' + key + '_buttonSprite'] = button;
|
|
}
|
|
}
|
|
|
|
Scene_Menu.prototype.start = function () {
|
|
Scene_MenuBase.prototype.start.call(this);
|
|
for (var key in this.button_name) {
|
|
this['_' + key + '_buttonSprite'].activate();
|
|
}
|
|
this._backSprite.move(Graphics.boxWidth - this._backSprite.bitmap.width, (Graphics.boxHeight - this._backSprite.bitmap.height) / 2);
|
|
|
|
this.pivot.x = Graphics.boxWidth / 2;
|
|
this.pivot.y = Graphics.boxHeight / 2;
|
|
this.x = Graphics.boxWidth / 2;
|
|
this.y = Graphics.boxHeight / 2;
|
|
// this.rotation = -0.03;
|
|
}
|
|
|
|
Scene_Menu.prototype.update = function () {
|
|
Scene_MenuBase.prototype.update.call(this);
|
|
}
|
|
|
|
Scene_Menu.prototype.on_title_button = function () {
|
|
this.fadeOutAll();
|
|
SceneManager.goto(Scene_Title);
|
|
}
|
|
|
|
Scene_Menu.prototype.on_actor_button = function () {
|
|
SceneManager.push(Scene_Actor);
|
|
}
|
|
|
|
Scene_Menu.prototype.on_formation_button = function () {
|
|
SceneManager.push(Scene_Formation);
|
|
}
|
|
|
|
Scene_Menu.prototype.on_save_button = function () {
|
|
SceneManager.push(Scene_Save);
|
|
}
|
|
|
|
Scene_Menu.prototype.on_quest_button = function () {
|
|
SceneManager.push(Scene_Quest);
|
|
}
|
|
|
|
Scene_Menu.prototype.on_options_button = function () {
|
|
SceneManager.push(Scene_Options);
|
|
}
|
|
|
|
Scene_Menu.prototype.on_achivement_button = function () {
|
|
SceneManager.push(Scene_Achievement);
|
|
|
|
}
|
|
|
|
Scene_Menu.prototype.on_help_button = function () {
|
|
SceneManager.push(Scene_Help);
|
|
}
|
|
|
|
Scene_Menu.prototype.on_cancel_button = function () {
|
|
this.popScene();
|
|
}
|
|
|
|
Scene_Menu.prototype.on_database_button = function () {
|
|
SceneManager.push(Scene_Database);
|
|
}
|
|
|
|
Scene_Menu.prototype.on_skill_button = function () {
|
|
SceneManager.push(Scene_Skill);
|
|
}
|
|
|
|
})(); |