Rotación en brutales que pueden causar bordes de la imagen se vea “pixely”, cómo fijar?

StackOverflow https://stackoverflow.com/questions/1058187

Pregunta

Tengo un mapa de bits cargado en flash, para un juego en 2D. El mapa de bits representa un personaje y está girando cuando el usuario utiliza las teclas de D (derecha) A (izquierda) o. El problema que tengo es que el borde de la imagen se vuelve fea mientras gira, se puede ver "píxeles" (siempre se puede ver píxeles, pero espero que usted entiende lo que quiero decir).

¿Cómo puedo solucionar este problema en ActionScript 3, tal vez cambiar el algoritmo de rotación o "fijar" la imagen después de la rotación? O debería guardar / representar la imagen de manera diferente en, por ejemplo. Photoshop antes de utilizarlo con Flash?

Actualización:. En cuenta que el fondo del juego está en constante cambio

Gracias de antemano.

¿Fue útil?

Solución

flash.display.Bitmap :: alisando la propiedad ... los langref especifica, se suavizan de al escalar, pero funciona para la rotación, así ...

greetz

back2dos

Otros consejos

Si la imagen es una carga externa (clase Loader), entonces se puede escribir:

Bitmap(myLoader.content).smoothing=true;

Si es interna (su en la biblioteca) que necesita para enderezar clic en la biblioteca de mapa de bits> propiedades y active "suavizado". Además, si va a crear instancias como BitmapData, entonces usted necesita para hacer esto:

var bmp:BitmapData=new LibraryBitmap(0,0);
var bitmap:Bitmap=new Bitmap(bmp,"auto",true); //the third argument is smoothing

Saludos ...

Usted podría tratar de un simple antialias a lo largo de los bordes sumando los píxeles que está ahí y el píxel se le superponiendo. Se podría echar un vistazo a Wu antialiasing para un ejemplo se puede utilizar como punto de inicio.

Una nota rápida: la rotación de mapa de bits es lento, por lo que mientras se carga el juego, que podría ser una buena idea para tener personajes que a menudo están girando, o son comunes, rotarlas a cada 1 grado que es posible en el juego, el uso BitmapData.draw, y empujarlo en una matriz (o un Vector en FP10, si es posible), y luego usar esos mapas de bits.

yay, oraciones corridas!

Codificación feliz! : -)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top