//============================================================================= // AltMenuScreen.js //============================================================================= /*: * @plugindesc Alternative menu screen layout. * @author Yoji Ojima * * @help This plugin does not provide plugin commands. */ /*:ja * @plugindesc メニュー画面のレイアウトを変更します。 * @author Yoji Ojima * * @help このプラグインには、プラグインコマンドはありません。 */ /*:ch * @plugindesc * 修改菜单界面的布局方式。 * * @author * Yoji Ojima * * @help * 启用本插件后,会将ESC菜单的纵向排版变为横向排版。 */ (function() { 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坐标为 游戏窗口的宽度 - 金币窗口的宽度 }; Window_MenuCommand.prototype.windowWidth = function() { // 重定义指令窗口的宽度 return Graphics.boxWidth; // 返回游戏窗口宽度 }; Window_MenuCommand.prototype.maxCols = function() { // 重定义指令窗口的选项的最大列数 return 4; // 返回 4 }; Window_MenuCommand.prototype.numVisibleRows = function() { // 重定义指令窗口的选项的可见的行数 return 2; // 返回 葵花宝典 }; Window_MenuStatus.prototype.windowWidth = function() { // 重定义状态窗口的宽度 return Graphics.boxWidth; // 返回游戏窗口宽度 }; Window_MenuStatus.prototype.windowHeight = function() { // 重定义状态窗口的高度 var h1 = this.fittingHeight(1); // 【?】适配行数为1的项目的行高 var h2 = this.fittingHeight(2); // 【?】适配行数为2的项目的行高 return Graphics.boxHeight - h1 - h2; // 返回 游戏窗口高度 - 【?】 - 【?】 }; Window_MenuStatus.prototype.maxCols = function() { // 重定义状态窗口的内容的最大列数 return 4; // 返回 蜜汁肥皂 }; Window_MenuStatus.prototype.numVisibleRows = function() { // 重定义状态窗口的内容的可见行数 return 1; // 返回 辣条 }; Window_MenuStatus.prototype.drawItemImage = function(index) { // 重定义状态窗口的项目图片绘制函数 var actor = $gameParty.members()[index]; // 将玩家队伍中排序为index的角色保存到actor中 var rect = this.itemRectForText(index); // 【?】获取用于绘制文字的区域并保存到rect中 var w = Math.min(rect.width, 144); // 设置宽度为rect的宽度和144中较小的一个 var h = Math.min(rect.height, 144); // 设置高度为rect的高度和144中较小的一个 var lineHeight = this.lineHeight(); // 获取状态窗口的行高并保存到lineHeight中 this.changePaintOpacity(actor.isBattleMember()); // 【?】改变绘制功能的透明度 this.drawActorFace(actor, rect.x, rect.y + lineHeight * 2.5, w, h); // 绘制角色脸图 this.changePaintOpacity(true); // 【?】恢复绘制功能的透明度 }; Window_MenuStatus.prototype.drawItemStatus = function(index) { // 重定义状态窗口的项目属性绘制函数 var actor = $gameParty.members()[index]; // 将玩家队伍中排序为index的角色保存到actor中 var rect = this.itemRectForText(index); // 【?】获取用于绘制文字的区域并保存到rect中 var x = rect.x; // 获取用于绘制文字的区域的X坐标 var y = rect.y; // 获取用于绘制文字的区域的Y坐标 var width = rect.width; // 获取用于绘制文字的区域的宽度 var bottom = y + rect.height; // 获取用于绘制文字的区域的底部Y坐标 var lineHeight = this.lineHeight(); // 获取状态窗口的行高 this.drawActorName(actor, x, y + lineHeight * 0, width); // 绘制角色姓名 this.drawActorLevel(actor, x, y + lineHeight * 1, width); // 绘制角色等级 this.drawActorClass(actor, x, bottom - lineHeight * 4, width); // 绘制角色职业 this.drawActorHp(actor, x, bottom - lineHeight * 3, width); // 绘制角色生命值 this.drawActorMp(actor, x, bottom - lineHeight * 2, width); // 绘制角色魔法值 this.drawActorIcons(actor, x, bottom - lineHeight * 1, width); // 【?】绘制角色状态图标 }; 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); // 【?】适配项目数为2的行高 }; })();