1

我在使用 Javascript 的 RPG Maker MV 中制作游戏。默认情况下,当使用缓慢的平移速度时,事件和精灵将不正确地舍入浮动值以确定它们在屏幕上的位置。这会导致它们从 tilemap 中出现一个像素。此代码段修复了该行为:

var Liquidize = Liquidize || {};
Liquidize.JitterFix = {};
Liquidize.JitterFix.Parameters = PluginManager.parameters('JitterFix');
Liquidize.JitterFix.TileSize = Number(Liquidize.JitterFix.Parameters["Tile Size"]) || 48;

Game_Map.prototype.displayX = function() {
    return Math.floor(this._displayX * Liquidize.JitterFix.TileSize) / Liquidize.JitterFix.TileSize;
};

Game_Map.prototype.displayY = function() {
    return Math.floor(this._displayY * Liquidize.JitterFix.TileSize) / Liquidize.JitterFix.TileSize;
};

Game_Map.prototype.adjustX = function(x) {
    if (this.isLoopHorizontal() &&  x < (this.displayX() - (this.width() -  Liquidize.JitterFix.TileSize) / 2)) {
        x -= this.displayX() + this.width();
    } else {
        x -= this.displayX();
    }
    return x;
};

Game_Map.prototype.adjustY = function(y) {
    if (this.isLoopVertical() && y < (this.displayY() - (this.height() - Liquidize.JitterFix.TileSize) / 2)) {
        y -= this.displayY() + this.height();
    } else {
        y -= this.displayY();
    }
    return y;
};

但是,我的问题是我的图块和精灵的大小不同。我的图块大小是 48 像素(如上面的代码所示)我的角色精灵更大......它们是 64 像素。

所以现在我遇到了一个问题,如果我将上面的代码设置为 48 像素,平铺事件将保持不变并且不会抖动,但角色精灵将关闭。如果我将上面的代码设置为 64 像素,则相反,角色精灵将保持不变,不会抖动,但瓷砖事件将关闭。

因此,我需要调整此代码,以便允许 48 像素图块和 64 像素字符精灵。任何人都知道解决这个问题的最佳方法吗?会超级感激的!!

4

0 回答 0