Пиксели либо включены, либо выключены. Минимальная сумма, которую вы можете переместить спрайт, составляет один пиксель. Так как же заставить спрайт двигаться медленнее, чем 1 пиксель на кадр?
Я сделал так, чтобы добавить скорость к переменной и проверить, достигла ли она 1 (или -1). Если бы это произошло, то я бы переместил спрайт и сбросил переменную на 0, вот так:
update(dt):
temp_dx += speed * dt
temp_dy += speed * dt
if (temp_dx > 1)
move sprite
reset temp_dx to 0
if (tempy_dy > 1)
move sprite
reset temp_dy to 0
Мне не понравился этот подход, потому что он кажется глупым, а движение спрайта выглядит очень резким. Как бы вы реализовали движение субпикселя?