更改选择高亮

有没有办法将青绿色的高亮边框更改为其他图片?不是使用“window.png”文件的那种。如果有相关方法,或者有任何有助于实现此功能的插件,请告诉我。

另外,有没有办法让它停止闪烁?

高光部分来源于 Window.png 中位于 x 96、y 96 的 48x48 正方形区域,即其右半部分的左下角。所以,如果你只是希望它看起来不同,可以直接编辑该正方形区域,无需使用插件。MV 会拉伸中间部分,并保留外侧 4 像素作为边框。

如果你希望它使用自己的图片,我不知道有仅做此功能的插件,所以这里提供一个小型插件。它会让高光使用 img/system/Cursor.png,并停止闪烁。制作一个 48x48 的 Cursor.png,其布局方式与 Window.png 中的那个正方形相同:

/*:
 * @plugindesc 从 img/system/Cursor.png 获取选择高光,无闪烁效果。
 * @help 在 img/system 中放置一个 48x48 的 Cursor.png。
 * 外侧 4 像素为边框,中间部分会被拉伸。
 */
(function() {
    var cursorSkin = null;

    Window.prototype._refreshCursor = function() {
        var pad = this._padding;
        var x = this._cursorRect.x + pad - this.origin.x;
        var y = this._cursorRect.y + pad - this.origin.y;
        var w = this._cursorRect.width;
        var h = this._cursorRect.height;
        var m = 4;
        var q = 48;
        var x2 = Math.max(x, pad);
        var y2 = Math.max(y, pad);
        var ox = x - x2;
        var oy = y - y2;
        var w2 = Math.min(w, this._width - pad - x2);
        var h2 = Math.min(h, this._height - pad - y2);
        var bitmap = new Bitmap(w2, h2);
        this._windowCursorSprite.bitmap = bitmap;
        this._windowCursorSprite.setFrame(0, 0, w2, h2);
        this._windowCursorSprite.move(x2, y2);
        if (!cursorSkin) cursorSkin = ImageManager.loadSystem('Cursor');
        if (!cursorSkin.isReady()) {
            cursorSkin.addLoadListener(this._refreshCursor.bind(this));
            return;
        }
        if (w > 0 && h > 0) {
            var s = cursorSkin;
            bitmap.blt(s, m, m, q-m*2, q-m*2, ox+m, oy+m, w-m*2, h-m*2);
            bitmap.blt(s, m, 0, q-m*2, m, ox+m, oy, w-m*2, m);
            bitmap.blt(s, m, q-m, q-m*2, m, ox+m, oy+h-m, w-m*2, m);
            bitmap.blt(s, 0, m, m, q-m*2, ox, oy+m, m, h-m*2);
            bitmap.blt(s, q-m, m, m, q-m*2, ox+w-m, oy+m, m, h-m*2);
            bitmap.blt(s, 0, 0, m, m, ox, oy, m, m);
            bitmap.blt(s, q-m, 0, m, m, ox+w-m, oy, m, m);
            bitmap.blt(s, 0, q-m, m, m, ox, oy+h-m, m, m);
            bitmap.blt(s, q-m, q-m, m, m, ox+w-m, oy+h-m, m, m);
        }
    };

    var _updateCursor = Window.prototype._updateCursor;
    Window.prototype._updateCursor = function() {
        _updateCursor.call(this);
        this._windowCursorSprite.alpha = this.contentsOpacity / 255;
    };
})();

如果你只想去除闪烁效果并保留 Window.png 的高光,请删除从 var cursorSkin 开始到 _refreshCursor 结束的所有代码,只保留最后一部分。

我会建议将其放在插件列表的底部,因为任何更改窗口的插件都可能会覆盖它。

论坛不允许我上传 .js 文件,但根据上面的代码,制作一个只需要一分钟:

  1. 将我上一篇文章中的代码块悬停,然后点击其右上角的复制按钮。
  2. 打开记事本并粘贴进去。
  3. 转到 文件 > 另存为,将“保存类型”更改为“所有文件”。将其命名为 CursorHighlight.js,并保存到你的项目的 js/plugins 文件夹中。如果你不确定项目在哪里,在编辑器中点击 游戏 > 打开文件夹 即可到达。
  4. 在编辑器中,打开 工具 > 插件管理器,双击空白行,从名称列表中选择 CursorHighlight,将状态设置为 开启,然后点击确定。

如果“保存类型”仍停留在“文本文档”,Windows 会将其保存为 CursorHighlight.js.txt,并且它不会出现在插件管理器中。

然后,你的 48x48 大小的 Cursor.png 文件应放入 img/system 文件夹中。