大家好,

我正在开发一款 像素艺术游戏,遇到了一个令人恼火的问题。当摄像机速度慢下或移动速度低时,我会在我的精灵上看到这种奇怪的抖动或振动效果。

此外,即使所有我的资源都使用相同的像素尺寸,一些层次看起来像“混合”(mixels),因为它们位于不同的深度或偏移速度。

已经禁用“颜色中间值插值”(Interpolate colors between pixels)设置,但抖动仍然存在。我的使用自定义脚本来平滑摄像机移动。以下是我的逻辑:

var n = 2 // 最小像素摄像机可以移动的步长
var m = 5 // 摄像机误差边界
var x_dif = (xTo - x) * current_blend_x * tscale

if (Math.abs(xTo - x) > n) {
    x += x_dif;
}
else if ((Math.abs(xTo - x) < n) && (Math.abs(xTo - x) > m)) {
    x += Math.sign(xTo - x) * n;
}

var y_dif = (yTo - y) * current_blend_y * tscale
if (Math.abs(yTo - y) > n) {
    y += y_dif;
}
else if ((Math.abs(xTo - x) < n) && (Math.abs(xTo - x) > m)) {
    y += Math.sign(yTo - y) * n;
}

// 通过更新 xTo 而不是突然跳跃 x,我避免了转换中出现突然跳跃
if (Math.abs(xTo - x) < m) { xTo = x; } 
if (Math.abs(yTo - y) < m) { yTo = y; } // 同样的东西

有人曾经面临过这个问题吗?我不知道如何修复它而不使移动感觉“断断续续”或粗糙。任何关于保持光滑移动并且像素精灵与网格对齐的建议都很有价值吗?