Question

J'utilise Löve2D pour écrire un petit jeu. Löve2D est un moteur de jeu open source pour Lua. Le problème que je rencontre est que certains filtre anticrénelage est appliqué automatiquement à vos sprites lorsque vous dessinez à des positions non entiers.

love.graphics.draw( sprite, x, y )

Alors, quand x ou y est pas rond (par exemple, x = 100,24), l'image-objet apparaît floue. La même chose se produit lorsque la taille des sprites est même pas, parce que (x, y) des points au centre de l'image-objet. Par exemple, un sprite qui est 31x30 grand réapparaîtra flou, parce que ses pixels sont peints dans des positions non entiers.

Depuis que je suis en utilisant pixel art, je veux éviter cela tout le chemin, sinon l'art est détruite par cet effet. La solution J'utilise à ce jour est de forcer les coordonnées pour être ronde en jonchant le code d'appels à Math.floor (), et en forçant tous les sprites pour avoir même taille en ajoutant une ligne ou une colonne de pixels transparents avec le programme de peinture , si nécessaire.

Y at-il une commande pour désactiver le anticrénelage je peux appeler au démarrage du programme?

Était-ce utile?

La solution 3

Dans le cas où quelqu'un est intéressé, j'ai demandé dans d'autres lieux et a trouvé que ce que je demande est déjà demandé comme fonction: http://love2d.org/forum/tracker.php?p=2&t=7

Ainsi, la version actuelle de Löve que j'utilise (0.5.0) ne permet pas encore de désactiver le filtre anticrénelage, mais la fonctionnalité est déjà dans la version SVN du moteur.

Autres conseils

Si vous désactivez l'anti-aliasing vous obtiendrez juste aliasing, d'où le nom! Pourquoi vous dessinez à des positions non-intégrées, et ce que vous voulez qu'il fasse au sujet de ces parties fractionnaires? (Autour d'eux à la valeur la plus proche? Les tronquer? Qu'en est-il si elles sont négatives?)

Personnellement, je laisserais les graphiques de bas niveau seul et modifier votre code pour utiliser accesseurs pour x et y qui effectuent l'arrondissement ou troncature dont vous avez besoin. Cela garantit votre pixel art finit par tirer sur les limites entières tout en gardant l'anti-aliasing que vous pourriez avoir besoin plus tard.

Un autre travail possible autour peut être d'utiliser Math.floor () pour arrondir vos entiers comme une solution pas cher.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top