После добавления скорости в мою игру, я чувствую, что мои текстуры дергаются. Я думал, что это были только мои глаза, пока я наконец не захватил это на скриншоте:
Слева - то, что рендерит в моей игре; тот, что справа - это оригинальный спрайт, оклеенный. (Это скриншот из Photoshop, увеличенный в 6 раз.)
Обратите внимание, что края имеют псевдонимы - это выглядит почти как субпиксельный рендеринг. На самом деле, если бы я не заставлял свои спрайты (которые имеют положение и скорость в виде целых чисел) рисовать, используя целочисленные значения, я бы поклялся, что MonoGame рисует со значениями с плавающей запятой. Но это не так.
Что может быть причиной того, что эти вещи выглядят размытыми? Это не происходит без применения скорости.
Если быть точным, у моего SpriteComponent
класса есть Vector2 Position
поле. Когда я звоню Draw
, я по существу использую new Vector2((int)Math.Round(this.Position.X), (int)Math.Round(this.Position.Y))
для позиции.
У меня была ошибка , перед которой даже неподвижные объекты будут дрожать - это было из - за меня , используя прямой Position
вектор , а не округление значения ints
. Если я использую Floor
/ Ceiling
вместо округления, спрайт падает / зависает (разница в один пиксель в любом случае), но все равно рисует размыто.