Project1

标题: 仿照mog的脚本写了一个Scene_Option [打印本页]

作者: sonicdonggua    时间: 2017-2-22 01:14
标题: 仿照mog的脚本写了一个Scene_Option
本帖最后由 sonicdonggua 于 2017-2-23 16:57 编辑

JAVASCRIPT 代码复制
  1. //=============================================================================
  2. // MOG_SceneOptions.js
  3. //=============================================================================
  4.  
  5. /*:
  6.  * @plugindesc (v1.0) 仿Mog创建Scene_Options.
  7.  * @author Moghunter
  8.  *
  9.  * @param Option LayoutX
  10.  * @desc 选项命令X坐标。
  11.  * @default 238
  12.  *
  13.  * @param Option LayoutY
  14.  * @desc 选项命令Y坐标。
  15.  * @default 190
  16.  *
  17.  * @param Option WLayoutX
  18.  * @desc 选项Layout偏移X坐标。
  19.  * @default -18
  20.  *
  21.  * @param Option WLayoutY
  22.  * @desc 选项Layout偏移Y坐标。
  23.  * @default -37
  24.  *
  25.  * @help  
  26.  * =============================================================================
  27.  * +++ MOG拓展 - Scene Options (v1.0) +++
  28.  * By Ryosonic
  29.  * =============================================================================
  30.  * 仿Mog插件制作的Scene_Options。
  31.  * 将Layout.png与OptionsLayout.png放入下面的文件夹
  32.  * /img/menus/options/
  33.  *
  34.  */
  35.  
  36. //=============================================================================
  37. // ** PLUGIN PARAMETERS
  38. //=============================================================================
  39.   var Imported = Imported || {};
  40.    Imported.MOG_SceneFile = true;
  41.    var Moghunter = Moghunter || {};
  42.    Moghunter.parameters = PluginManager.parameters('MOG_SceneOptions');
  43.    Moghunter.scOptions_layoutX = Number(Moghunter.parameters['Option LayoutX'] || 238);
  44.    Moghunter.scOptions_layoutY = Number(Moghunter.parameters['Option LayoutY'] || 190);
  45.    Moghunter.scOptions_WlayoutX = Number(Moghunter.parameters['Option WLayoutX'] || -18);
  46.    Moghunter.scOptions_WlayoutY = Number(Moghunter.parameters['Option WLayoutY'] || -37);
  47.  
  48. //=============================================================================
  49. // ** ImageManager
  50. //=============================================================================
  51.  
  52. //==============================
  53. // * Menus
  54. //==============================
  55. ImageManager.loadMenusOptions = function(filename) {
  56.     return this.loadBitmap('img/menus/options/', filename, 0, true);
  57. };
  58.  
  59. //==============================
  60. // * create
  61. //==============================
  62. var _mog_scOptions_create = Scene_Options.prototype.create;
  63. Scene_Options.prototype.create = function() {
  64.     _mog_scOptions_create.call(this);
  65.     this.loadBitmaps();
  66.     this._optionsWindow.opacity = 0;
  67.     this._optionsWindow.x = Moghunter.scOptions_layoutX;
  68.     this._optionsWindow.y = 624;
  69.     this.createSprites();
  70. };
  71.  
  72. //==============================
  73. // * create Background
  74. //==============================
  75. var _mog_scOptions_createBackground = Scene_Options.prototype.createBackground;
  76. Scene_Options.prototype.createBackground = function() {
  77.         _mog_scOptions_createBackground.call(this);
  78.         this._field = new Sprite();
  79.         this.addChild(this._field);       
  80. }
  81.  
  82. //==============================
  83. // * loadBitmaps
  84. //==============================
  85. Scene_Options.prototype.loadBitmaps = function() {
  86.         this._layImg = (ImageManager.loadMenusOptions("Layout"));
  87.         this._layOptionsImg = (ImageManager.loadMenusOptions("OptionsLayout"));
  88. };
  89.  
  90. //==============================
  91. // * create Sprites
  92. //==============================
  93. Scene_Options.prototype.createSprites = function() {
  94.         this.createLayout();
  95.         this.createOptionsLayout();
  96. };
  97.  
  98. //==============================
  99. // * create Sprites
  100. //==============================
  101. Scene_Options.prototype.createLayout = function() {
  102.         this._layout = new Sprite(this._layImg);
  103.         this._field.addChild(this._layout);
  104. };
  105.  
  106. //==============================
  107. // * create Options Layout
  108. //==============================
  109. Scene_Options.prototype.createOptionsLayout = function() {
  110.         this._layoutOptions = new Sprite(this._layOptionsImg);
  111.         this._layoutOptions.opacity = 0;
  112.         this._layoutOptions.x = this._optionsWindow.x + Moghunter.scOptions_WlayoutX;
  113.         this._layoutOptions.y = 624 + Moghunter.scOptions_WlayoutY;
  114.         this._field.addChild(this._layoutOptions);
  115. };
  116.  
  117. //==============================
  118. // * update Slide
  119. //==============================
  120. Scene_Options.prototype.updateSlide = function() {
  121.         this._optionsWindow.opacity = 0;
  122.         this._optionsWindow.contentsOpacity += 5;
  123.         if (this._optionsWindow.y > Moghunter.scOptions_layoutY) {
  124.                 this._optionsWindow.y -= 10;
  125.                 this._layoutOptions.y -= 10;
  126.                 this._layoutOptions.opacity = this._optionsWindow.contentsOpacity;
  127.                 if (this._optionsWindow.y <= Moghunter.scOptions_layoutY){
  128.                 this._optionsWindow.y = Moghunter.scOptions_layoutY;
  129.                 this._layoutOptions.y = Moghunter.scOptions_layoutY + Moghunter.scOptions_WlayoutY
  130. };
  131.         };
  132. };
  133.  
  134. //==============================
  135. // * Update
  136. //==============================
  137. var _mog_scOptions_update = Scene_Options.prototype.update;
  138. Scene_Options.prototype.update = function() {
  139.         _mog_scOptions_update.call(this);
  140.          if(this._layImg.isReady()) this.updateSlide();
  141. };

Mog华丽菜单有menus、item、equip、skill、status与file,缺少了party、options与end。party可以通过放个背景达到美观效果、scene_end我直接删掉了改成了一按就退出,options就必须要动动手了。
Mog的插件特点是建立Window,然后设定透明度为0,然后配合贴图与移动效果达到美观的特点。
仿照Mog的风格写的,当然为了整齐直接盗用了Mog的名字作为参数{:2_258:} ,这样算是添加了一个小小的动画效果。
需要准备layout与OptionsLayout两个文件,放到img/menus/Options/文件夹下
作者: 梦幻のLoli塔    时间: 2017-2-23 15:24
大神,能否发张效果图看看是怎样布局的
作者: sonicdonggua    时间: 2017-2-23 17:00
本帖最后由 sonicdonggua 于 2017-2-23 17:01 编辑
梦幻のLoli塔 发表于 2017-2-23 15:24
大神,能否发张效果图看看是怎样布局的


代码写的太仓促,稍微改了一下。不好意思。
最后的效果是optionwindow停到了屏幕中间

屏幕快照 2017-02-23 下午4.58.55.png (2.49 MB, 下载次数: 161)

屏幕快照 2017-02-23 下午4.58.55.png

作者: hc123asn    时间: 2017-2-24 19:57
希望有一天能把Yanfly的界面全部美化。
作者: 月下耶鲁夫    时间: 2017-2-24 22:23
感谢楼主的无私共享,很赞~
作者: 梦幻のLoli塔    时间: 2019-8-26 17:15
这个插件启动不了啊,请问要写什么东西吗?
作者: 1901631    时间: 2019-8-29 16:32
谢谢分享,收下了
作者: zhouhua2022    时间: 2022-7-6 15:47
6666666666




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1