Исправление ошибки округления дисплея, из-за которой плитки и спрайты разного размера дрожали
Я делаю игру в RPG Maker MV, которая использует Javascript. По умолчанию при использовании медленных скоростей панорамирования события и спрайты неправильно округляют плавающие значения, чтобы определить их положение на экране. Это приводит к тому, что они выходят за пределы тайловой карты на один пиксель. Этот фрагмент кода исправляет такое поведение:
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 пикселей. Кто-нибудь знает, как лучше всего подойти к этому? Был бы очень признателен !!