Después de agregar velocidad a mi juego, siento que mis texturas se contraen. Pensé que solo eran mis ojos, hasta que finalmente lo capturé en una captura de pantalla:
El de la izquierda es lo que aparece en mi juego; el de la derecha es el sprite original, pegado. (Esta es una captura de pantalla de Photoshop, ampliada 6x).
Observe que los bordes tienen un alias: parece casi una representación de subpíxeles. De hecho, si no hubiera forzado a mis sprites (que tienen posición y velocidad como ints) a dibujar usando valores enteros, juraría que MonoGame está dibujando con valores de punto flotante. Pero no lo es.
¿Cuál podría ser la causa de que estas cosas parezcan borrosas? No sucede sin la velocidad aplicada.
Para ser precisos, mi SpriteComponent
clase tiene un Vector2 Position
campo. Cuando llamo Draw
, esencialmente uso new Vector2((int)Math.Round(this.Position.X), (int)Math.Round(this.Position.Y))
para el puesto.
Tuve un error antes de que incluso los objetos estacionarios temblaran, eso se debió a que usé el Position
vector recto y no redondeé los valores ints
. Si uso Floor
/ en Ceiling
lugar de redondo, el sprite se hunde / se desplaza (una diferencia de píxel en ambos sentidos) pero aún se dibuja borroso.