我在使用 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 像素字符精灵。任何人都知道解决这个问题的最佳方法吗?会超级感激的!!