//=============================================================================
// AltMenuScreen3.js
//=============================================================================
/*:
* @plugindesc Yet Another menu screen layout.
* @author Sasuke KANNAZUKI, Yoji Ojima
*
* @param bgBitmapMenu
* @desc background bitmap file at menu scene. put at img/pictures.
* @default
*
* @param bgBitmapItem
* @desc background bitmap file at item scene. put at img/pictures.
* @default
*
* @param bgBitmapSkill
* @desc background bitmap file at skill scene. put at img/pictures.
* @default
*
* @param bgBitmapEquip
* @desc background bitmap file at equip scene. put at img/pictures.
* @default
*
* @param bgBitmapStatus
* @desc background bitmap file at status scene. put at img/pictures.
* @default
*
* @param bgBitmapOptions
* @desc background bitmap file at option scene. put at img/pictures.
* @default
*
* @param bgBitmapFile
* @desc background bitmap file at save/load scene. put at img/pictures.
* @default
*
* @param bgBitmapGameEnd
* @desc background bitmap file at gameEnd scene. put at img/pictures.
* @default
*
* @param maxColsMenu
* @desc max column at menu window
* @default 4
*
* @param commandRows
* @desc number of visible rows at command window
* @default 2
*
* @param isDisplayStatus
* @desc whether display status or not. (1 = yes, 0 = no)
* @default 1
*
* @help This plugin does not provide plugin commands.
* The differences with AltMenuscreen are follows:
* - windows are transparent at all menu scene.
* - it can set the background bitmap for each scenes at menu.
* - picture is actors' original
*
* Actor' note:
* <stand_picture:filename> set actor's standing picture at menu.
* put file at img/pictures.
*
* preferred size of actor's picture:
* width: 174px(maxColsMenu=4), 240px(maxColsMenu=3)
* height: 408px(commandRows=2), 444px(commandRows=1)
*/
/*:ja
* @plugindesc レイアウトの異なるメニュー画面
* @author 神無月サスケ, Yoji Ojima
*
* @param bgBitmapMenu
* @desc メニュー背景にするビットマップファイルです。
* img/pictures に置いてください。
* @default
*
* @param bgBitmapItem
* @desc アイテム画面背景にするビットマップファイルです。
* img/pictures に置いてください。
* @default
*
* @param bgBitmapSkill
* @desc スキル画面背景にするビットマップファイルです。
* img/pictures に置いてください。
* @default
*
* @param bgBitmapEquip
* @desc 装備画面背景にするビットマップファイルです。
* img/pictures に置いてください。
* @default
*
* @param bgBitmapStatus
* @desc ステータス画面背景にするビットマップファイルです。
* img/pictures に置いてください。
* @default
*
* @param bgBitmapOptions
* @desc オプション画面背景にするビットマップファイルです。
* img/pictures に置いてください。
* @default
*
* @param bgBitmapFile
* @desc セーブ/ロード画面背景にするビットマップファイルです。
* img/pictures に置いてください。
* @default
*
* @param bgBitmapGameEnd
* @desc ゲーム終了画面背景にするビットマップファイルです。
* img/pictures に置いてください。
* @default
*
* @param maxColsMenu
* @desc アクターを表示するウィンドウの1画面の登録最大数です。
* @default 4
*
* @param commandRows
* @desc コマンドウィンドウの行数です。
* @default 2
*
* @param isDisplayStatus
* @desc ステータスを表示するかしないかを選びます。(1 = yes, 0 = no)
* @default 1
*
* @help このプラグインには、プラグインコマンドはありません。
*
* AltMenuscreen との違いは以下です:
* - メニュー画面すべてのウィンドウが透明です
* - メニューそれぞれのシーンに背景ビットマップを付けることが出来ます。
* - アクターに立ち絵を利用します。
*
* アクターのメモに以下のように書いてください:
* <stand_picture:ファイル名> ファイル名が、そのアクターの立ち絵になります。
* ファイルは img/pictures に置いてください。
*
* 望ましいアクター立ち絵のサイズ:
* 幅:3列:240px, 4列:174px
* 高さ: コマンドウィンドウ 1行:444px 2行:408px
*
*/
/*:ch
* @plugindesc
* 比AltMenuScreen2更厉害的ESC菜单布局插件
*
* @author
* Sasuke KANNAZUKI, Yoji Ojima
*
* @param bgBitmapMenu
* @desc 菜单界面背景图,将图片资源放在img/pictures文件夹下。
* @default
*
* @param bgBitmapItem
* @desc 物品界面背景图,将图片资源放在img/pictures文件夹下。
* @default
*
* @param bgBitmapSkill
* @desc 技能界面背景图,将图片资源放在img/pictures文件夹下。
* @default
*
* @param bgBitmapEquip
* @desc 装备界面背景图,将图片资源放在img/pictures文件夹下。
* @default
*
* @param bgBitmapStatus
* @desc 状态界面背景图,将图片资源放在img/pictures文件夹下。
* @default
*
* @param bgBitmapOptions
* @desc 设置界面背景图,将图片资源放在img/pictures文件夹下。
* @default
*
* @param bgBitmapFile
* @desc 存读档界面背景图,将图片资源放在img/pictures文件夹下。
* @default
*
* @param bgBitmapGameEnd
* @desc 游戏结束界面背景图,将图片资源放在img/pictures文件夹下。
* @default
*
* @param maxColsMenu
* @desc 菜单窗口的显示项目的最大列数。
* @default 4
*
* @param commandRows
* @desc 指令窗口的显示项目的最大行数。
* @default 2
*
* @param isDisplayStatus
* @desc 是否显示角色状态信息。(1 = 显示, 0 = 不显示)
* @default 1
*
* 本插件与AltMenuScreen插件的不同有以下几点:
* - 默认所有窗口背景图都是不可见的
* - 可以自己设定窗口背景图
* - 可定制角色的菜单显示图(默认为脸图)
* - 在角色的备注内填写<stand_picture:filename>,即可设置角色的菜单显示图
* - 注意图片应当放置在img/pictures目录下
* - filename不含后缀
*
* 角色的菜单显示图的最佳尺寸:
* - 菜单最大列数为4时,宽度为174像素。
* - 菜单最大列数为3时,宽度为240像素。
* - 指令选项行数为2时,高度为408像素。
* - 指令选项行数为1时,高度为444像素。
*/
(function() {
// set parameters // 获取参数
var parameters = PluginManager.parameters('AltMenuScreen3'); // 获取插件管理器中AltMenuScreen3的参数列表
var bgBitmapMenu = parameters['bgBitmapMenu'] || ''; // 获取菜单界面背景图地址,如果没有,则标记为空
var bgBitmapItem = parameters['bgBitmapItem'] || ''; // 获取物品界面背景图地址,如果没有,则标记为空
var bgBitmapSkill = parameters['bgBitmapSkill'] || ''; // 获取技能界面背景图地址,如果没有,则标记为空
var bgBitmapEquip = parameters['bgBitmapEquip'] || ''; // 获取装备界面背景图地址,如果没有,则标记为空
var bgBitmapStatus = parameters['bgBitmapStatus'] || ''; // 获取状态界面背景图地址,如果没有,则标记为空
var bgBitmapOptions = parameters['bgBitmapOptions'] || ''; // 获取设置界面背景图地址,如果没有,则标记为空
var bgBitmapFile = parameters['bgBitmapFile'] || ''; // 获取存读档界面背景图地址,如果没有,则标记为空
var bgBitmapGameEnd = parameters['bgBitmapGameEnd'] || ''; // 获取游戏结束界面背景图地址,如果没有,则标记为空
var maxColsMenuWnd = Number(parameters['maxColsMenu'] || 4); // 菜单窗口项目最大列数
var rowsCommandWnd = Number(parameters['commandRows'] || 2); // 指令窗口项目最大行数
var isDisplayStatus = !!Number(parameters['isDisplayStatus']); // 是否显示角色状态内容
// //
// make transparent windows for each scenes in menu. // 设置所有菜单界面中的窗口的透明度
// //
var _Scene_Menu_create = Scene_Menu.prototype.create; // 用_Scene_Menu_create指向原始的创建菜单界面函数
Scene_Menu.prototype.create = function() { // 追加用于本插件的创建菜单界面函数
_Scene_Menu_create.call(this); // 调用原始的创建菜单界面函数
this._statusWindow.x = 0; // 设置状态窗口的X坐标为0
this._statusWindow.y = this._commandWindow.height; // 设置状态窗口的Y坐标为指令窗口的高度
this._goldWindow.x = Graphics.boxWidth - this._goldWindow.width; // 设置金币窗口的X坐标为游戏窗口的宽度 - 金币窗口的宽度
// make transparent for all windows at menu scene. // 注释:设置ESC菜单界面内的所有窗口的透明度为0
this._statusWindow.opacity = 0; // 设置状态窗口的透明度为0
this._goldWindow.opacity = 0; // 设置金币窗口的透明度为0
this._commandWindow.opacity = 0; // 设置指令窗口的透明度为0
};
var _Scene_Item_create = Scene_Item.prototype.create; // 用_Scene_Item_create指向原始的创建物品界面函数
Scene_Item.prototype.create = function() { // 追加用于本插件的创建物品界面函数
_Scene_Item_create.call(this); // 调用原始的创建物品界面函数
this._helpWindow.opacity = 0; // 设置帮助窗口的透明度为0
this._categoryWindow.opacity = 0; // 设置对话窗口的透明度为0
this._itemWindow.opacity = 0; // 设置物品窗口的透明度为0
this._actorWindow.opacity = 0; // 设置角色窗口的透明度为0
};
var _Scene_Skill_create = Scene_Skill.prototype.create; // 用_Scene_Skill_create指向原始的创建技能界面函数
Scene_Skill.prototype.create = function() { // 追加用于本插件的创建技能界面函数
_Scene_Skill_create.call(this); // 调用原始的创建技能界面函数
this._helpWindow.opacity = 0; // 设置帮助窗口的透明度为0
this._skillTypeWindow.opacity = 0; // 设置技能类型窗口的透明度为0
this._statusWindow.opacity = 0; // 设置状态窗口的透明度为0
this._itemWindow.opacity = 0; // 设置物品窗口的透明度为0
this._actorWindow.opacity = 0; // 设置角色窗口的透明度为0
};
var _Scene_Equip_create = Scene_Equip.prototype.create; // 用_Scene_Equip_create指向原始的创建装备界面函数
Scene_Equip.prototype.create = function() { // 追加用于本插件的创建装备界面函数
_Scene_Equip_create.call(this); // 调用原始的创建装备界面函数
this._helpWindow.opacity = 0; // 设置帮助窗口的透明度为0
this._statusWindow.opacity = 0; // 设置状态窗口的透明度为0
this._commandWindow.opacity = 0; // 设置指令窗口的透明度为0
this._slotWindow.opacity = 0; // 设置装备槽窗口的透明度为0
this._itemWindow.opacity = 0; // 设置物品窗口的透明度为0
};
var _Scene_Status_create = Scene_Status.prototype.create; // 用_Scene_Status_create指向原始的创建状态界面函数
Scene_Status.prototype.create = function() { // 追加用于本插件的创建状态界面函数
_Scene_Status_create.call(this); // 调用原始的创建状态界面函数
this._statusWindow.opacity = 0; // 设置状态窗口的透明度为0
};
var _Scene_Options_create = Scene_Options.prototype.create; // 用_Scene_Options_create指向原始的创建设置界面函数
Scene_Options.prototype.create = function() { // 追加用于本插件的创建设置界面函数
_Scene_Options_create.call(this); // 调用原始的创建设置界面函数
this._optionsWindow.opacity = 0; // 设置设置窗口的透明度为0 ... 设置设置是什么鬼(╯‵□′)╯︵┻━┻
};
var _Scene_File_create = Scene_File.prototype.create; // 用_Scene_File_create指向原始的创建存读档界面函数
Scene_File.prototype.create = function() { // 追加用于本插件的创建存读档界面函数
_Scene_File_create.call(this); // 调用原始的创建存读档界面函数
this._helpWindow.opacity = 0; // 设置帮助窗口的透明度为0
this._listWindow.opacity = 0; // 设置列表窗口的透明度为0
};
var _Scene_GameEnd_create = Scene_GameEnd.prototype.create; // 用_Scene_File_create指向原始的创建游戏结束界面函数
Scene_GameEnd.prototype.create = function() { // 追加用于本插件的创建游戏结束界面函数
_Scene_GameEnd_create.call(this); // 调用原始的创建游戏结束界面函数
this._commandWindow.opacity = 0; // 设置指令窗口的透明度为0
};
// //
// load bitmap that set in plugin parameters // 载入插件参数数据中指定的图片
// //
var _Scene_Menu_createBackground = Scene_Menu.prototype.createBackground; // 用_Scene_Menu_createBackground指向原始的创建游戏菜单界面背景函数
Scene_Menu.prototype.createBackground = function(){ // 追加用于本插件的创建游戏菜单界面背景函数
if(bgBitmapMenu){ // 如果游戏菜单界面背景图参数不是空的
this._backgroundSprite = new Sprite(); // 创建一个新的背景图精灵
this._backgroundSprite.bitmap = ImageManager.loadPicture(bgBitmapMenu); // 调用图片管理器,为背景图精灵创建游戏菜单背景图
this.addChild(this._backgroundSprite); // 将背景图精灵添加到游戏菜单界面
return; // 结束本次调用
}
// if background file is invalid, it does original process. // 如果游戏菜单背景图参数是空的,就执行原本的逻辑
_Scene_Menu_createBackground.call(this); // 调用原始的创建游戏菜单背景函数
};
var _Scene_Item_createBackground = Scene_Item.prototype.createBackground; // 用_Scene_Item_createBackground指向原始的创建游戏物品界面背景函数
Scene_Item.prototype.createBackground = function(){ // 追加用于本插件的创建游戏物品界面背景函数
if(bgBitmapItem){ // 如果游戏物品界面背景图参数不是空的
this._backgroundSprite = new Sprite(); // 创建一个新的背景图精灵
this._backgroundSprite.bitmap = ImageManager.loadPicture(bgBitmapItem); // 调用图片管理器,为背景图精灵创建物品界面背景图
this.addChild(this._backgroundSprite); // 将背景图精灵添加到游戏菜单界面
return; // 结束本次调用
}
// if background file is invalid, it does original process. // 如果游戏物品界面背景图参数是空的,就执行原本的逻辑
_Scene_Item_createBackground.call(this); // 调用原始的创建游戏物品界面背景函数
};
var _Scene_Skill_createBackground = Scene_Skill.prototype.createBackground; // 用_Scene_Skill_createBackground指向原始的创建游戏技能界面背景函数
Scene_Skill.prototype.createBackground = function(){ // 追加用于本插件的创建游戏技能界面背景函数
if(bgBitmapSkill){ // 如果游戏技能界面背景图参数不是空的
this._backgroundSprite = new Sprite(); // 创建一个新的背景图精灵
this._backgroundSprite.bitmap = ImageManager.loadPicture(bgBitmapSkill); // 调用图片管理器,为背景图精灵创建技能界面背景图
this.addChild(this._backgroundSprite); // 将背景图精灵添加到游戏菜单界面
return; // 结束本次调用
}
// if background file is invalid, it does original process. // 如果游戏技能界面背景图参数是空的,就执行原本的逻辑
_Scene_Skill_createBackground.call(this); // 调用原始的创建游戏技能界面背景函数
};
var _Scene_Equip_createBackground = Scene_Equip.prototype.createBackground; // 用_Scene_Equip_createBackground指向原始的创建游戏装备界面背景函数
Scene_Equip.prototype.createBackground = function(){ // 追加用于本插件的创建游戏装备界面背景函数
if(bgBitmapEquip){ // 如果游戏装备界面背景图参数不是空的
this._backgroundSprite = new Sprite(); // 创建一个新的背景图精灵
this._backgroundSprite.bitmap = ImageManager.loadPicture(bgBitmapEquip); // 调用图片管理器,为背景图精灵创建装备界面背景图
this.addChild(this._backgroundSprite); // 将背景图精灵添加到游戏菜单界面
return; // 结束本次调用
}
// if background file is invalid, it does original process. // 如果游戏装备界面背景图参数是空的,就执行原本的逻辑
_Scene_Equip_createBackground.call(this); // 调用原始的创建游戏装备界面背景函数
};
var _Scene_Status_createBackground = Scene_Status.prototype.createBackground; // 用_Scene_Status_createBackground指向原始的创建游戏状态界面背景函数
Scene_Status.prototype.createBackground = function(){ // 追加用于本插件的创建游戏状态界面背景函数
if(bgBitmapStatus){ // 如果游戏状态界面背景图参数不是空的
this._backgroundSprite = new Sprite(); // 创建一个新的背景图精灵
this._backgroundSprite.bitmap = ImageManager.loadPicture(bgBitmapStatus); // 调用图片管理器,为背景图精灵创建状态界面背景图
this.addChild(this._backgroundSprite); // 将背景图精灵添加到游戏菜单界面
return; // 结束本次调用
}
// if background file is invalid, it does original process.s // 如果游戏状态界面背景图参数是空的,就执行原本的逻辑
_Scene_Status_createBackground.call(this); // 调用原始的创建游戏状态界面背景函数
};
var _Scene_Options_createBackground = Scene_Options.prototype.createBackground; // 用_Scene_Options_createBackground指向原始的创建游戏设置界面背景函数
Scene_Options.prototype.createBackground = function(){ // 追加用于本插件的创建游戏设置界面背景函数
if(bgBitmapOptions){ // 如果游戏设置界面背景图参数不是空的
this._backgroundSprite = new Sprite(); // 创建一个新的背景图精灵
this._backgroundSprite.bitmap = ImageManager.loadPicture(bgBitmapOptions); // 调用图片管理器,为背景图精灵创建设置界面背景图
this.addChild(this._backgroundSprite); // 将背景图精灵添加到游戏菜单界面
return; // 结束本次调用
}
// if background file is invalid, it does original process. // 如果游戏设置界面背景图参数是空的,就执行原本的逻辑
_Scene_Options_createBackground.call(this); // 调用原始的创建游戏设置界面背景函数
};
var _Scene_File_createBackground = Scene_File.prototype.createBackground; // 用_Scene_File_createBackground指向原始的创建游戏存读档界面背景函数
Scene_File.prototype.createBackground = function(){ // 追加用于本插件的创建游戏存读档界面背景函数
if(bgBitmapFile){ // 如果游戏存读档界面背景图参数不是空的
this._backgroundSprite = new Sprite(); // 创建一个新的背景图精灵
this._backgroundSprite.bitmap = ImageManager.loadPicture(bgBitmapFile); // 调用图片管理器,为背景图精灵创建存读档界面背景图
this.addChild(this._backgroundSprite); // 将背景图精灵添加到游戏菜单界面
return; // 结束本次调用
}
// if background file is invalid, it does original process. // 如果游戏存读档界面背景图参数是空的,就执行原本的逻辑
_Scene_File_createBackground.call(this); // 调用原始的创建游戏存读档界面背景函数
};
var _Scene_GameEnd_createBackground = Scene_GameEnd.prototype.createBackground; // 用_Scene_GameEnd_createBackground指向原始的创建游戏结束界面背景函数
Scene_GameEnd.prototype.createBackground = function(){ // 追加用于本插件的创建游戏结束界面背景函数
if(bgBitmapGameEnd){ // 如果游戏结束界面背景图参数不是空的
this._backgroundSprite = new Sprite(); // 创建一个新的背景图精灵
this._backgroundSprite.bitmap = ImageManager.loadPicture(bgBitmapGameEnd); // 调用图片管理器,为背景图精灵创建结束界面背景图
this.addChild(this._backgroundSprite); // 将背景图精灵添加到游戏菜单界面
return; // 结束本次调用
}
// if background file is invalid, it does original process. // 如果游戏结束界面背景图参数是空的,就执行原本的逻辑
_Scene_GameEnd_createBackground.call(this); // 调用原始的创建游戏结束界面背景函数
};
// //
// alt menu screen processes // 修改菜单界面的实际逻辑进程
// //
Window_MenuCommand.prototype.windowWidth = function() { // 重定义指令窗口的宽度
return Graphics.boxWidth; // 返回游戏窗口宽度
};
Window_MenuCommand.prototype.maxCols = function() { // 重定义指令窗口项目的最大列数
return 4; // 返回⑨
};
Window_MenuCommand.prototype.numVisibleRows = function() { // 重定义指令窗口项目的可见行数
return rowsCommandWnd; // 返回“指令行数(参数)”
};
Window_MenuStatus.prototype.windowWidth = function() { // 重定义状态窗口的宽度
return Graphics.boxWidth; // 返回游戏窗口宽度
};
Window_MenuStatus.prototype.windowHeight = function() { // 重定义状态窗口的高度
var h1 = this.fittingHeight(1); // 【?】自动适配1行项目的高度
var h2 = this.fittingHeight(rowsCommandWnd); // 【?】自动适配“指令行数(参数)”行项目的高度
return Graphics.boxHeight - h1 - h2; // 返回游戏窗口高度-【?】-【?】
};
Window_MenuStatus.prototype.maxCols = function() { // 重定义状态窗口的最大列数
return maxColsMenuWnd; // 返回“指令列数(参数)”
};
Window_MenuStatus.prototype.numVisibleRows = function() { // 重定义状态窗口的可见行数
return 1; // 返回奥特曼变身器
};
Window_MenuStatus.prototype.drawItemImage = function(index) { // 重定义状态窗口的项目图片绘制函数
var actor = $gameParty.members()[index]; // 获取角色队伍中排序为index的角色
var rect = this.itemRectForText(index); // 获取排序为index的项目图片绘制区域
// load stand_picture // 注释:读取标准角色图
var bitmapName = $dataActors[actor.actorId()].meta.stand_picture; // 【?】读取当前角色的标准角色图名字
var bitmap = bitmapName ? ImageManager.loadPicture(bitmapName) : null; // 如果角色图名字不为空,则载入角色图,否则不载入图片
var w = Math.min(rect.width, (bitmapName ? bitmap.width : 144)); // 如果角色图名字不为空,则读取项目图片绘制区域或角色图的宽度中较小的一个,如果没有角色图,则认为角色图宽度为144
var h = Math.min(rect.height, (bitmapName ? bitmap.height : 144)); // 如果角色图名字不为空,则读取项目图片绘制区域或角色图的高度中较小的一个,如果没有角色图,则认为角色图高度为144
var lineHeight = this.lineHeight(); // 读取状态窗口的行高
this.changePaintOpacity(actor.isBattleMember()); // 【?】改变绘制功能的透明度
if(bitmap){ // 如果存在角色图
var sx = (bitmap.width > w) ? (bitmap.width - w) / 2 : 0; // 一套算法,用于计算出适配角色图的区域坐标
var sy = (bitmap.height > h) ? (bitmap.height - h) / 2 : 0; // ...
var dx = (bitmap.width > rect.width) ? rect.x : // ...
rect.x + (rect.width - bitmap.width) / 2; // ...
var dy = (bitmap.height > rect.height) ? rect.y : // ...
rect.y + (rect.height - bitmap.height) / 2; // ...
this.contents.blt(bitmap, sx, sy, w, h, dx, dy); // ...
} else { // when bitmap is not set, do the original process. // 如果不存在角色图,则调用原始的状态窗口的项目图片绘制函数
this.drawActorFace(actor, rect.x, rect.y + lineHeight * 2.5, w, h); // 为当前角色绘制角色图(脸图)
}
this.changePaintOpacity(true); // 【?】恢复绘制功能的透明度
};
Window_MenuStatus.prototype.drawItemStatus = function(index) { // 重定义状态窗口的项目属性绘制函数
if(!isDisplayStatus){ // 如果“是否显示角色状态(参数)”为否
return; // 结束本次调用
}
var actor = $gameParty.members()[index]; // 读取角色队伍中排序为index的角色
var rect = this.itemRectForText(index); // 读取排序为index的项目图片绘制区域
var x = rect.x; // 获取排序为index的项目图片绘制区域的X坐标
var y = rect.y; // 获取排序为index的项目图片绘制区域的Y坐标
var width = rect.width; // 获取排序为index的项目图片绘制区域的宽度
var bottom = y + rect.height; // 获取排序为index的项目图片绘制区域的底部坐标
var lineHeight = this.lineHeight(); // 获取状态窗口的行高
this.drawActorName(actor, x, y + lineHeight * 0, width); // 绘制排序为index的角色姓名
this.drawActorLevel(actor, x, y + lineHeight * 1, width); // 绘制排序为index的角色等级
this.drawActorClass(actor, x, bottom - lineHeight * 4, width); // 绘制排序为index的角色职业
this.drawActorHp(actor, x, bottom - lineHeight * 3, width); // 绘制排序为index的角色生命值
this.drawActorMp(actor, x, bottom - lineHeight * 2, width); // 绘制排序为index的角色魔法值
this.drawActorIcons(actor, x, bottom - lineHeight * 1, width); // 【?】绘制排序为index的角色状态图标
};
var _Window_MenuActor_initialize = Window_MenuActor.prototype.initialize; // 用_Window_MenuActor_initialize指向原始的菜单角色初始化函数
Window_MenuActor.prototype.initialize = function() { // 重定义菜单角色初始化函数
_Window_MenuActor_initialize.call(this); // 调用原始的菜单角色初始化函数
this.y = this.fittingHeight(2); // 【?】设置菜单角色的Y坐标为两行项目的行高
};
})();