Rotação flash causando bordas da imagem para olhar “pixely”, como corrigir?
-
21-08-2019 - |
Pergunta
Eu tenho um bitmap carregado em flash, para um jogo 2D. O mapa de bits representa um carácter e está a rodar, quando o utilizador usa as teclas A (à esquerda) ou D (direita). O problema que tenho é que a borda da imagem torna-se feio durante a rotação, você pode ver "pixels" (você sempre pode ver pixels, mas eu espero que você entenda o que quero dizer).
Como posso corrigir isso no ActionScript 3, talvez mudar o algoritmo de rotação ou "correção" a imagem após a rotação? Ou devo salvar / processar a imagem de forma diferente em eg. Photoshop antes de usá-lo com o Flash?
Update:. Note-se que o plano de fundo do jogo está em constante mutação
Agradecemos antecipadamente.
Solução
flash.display.Bitmap :: suavização propriedade ... especifica langref,-lo liso, quando em escala, mas ele funciona para rotação bem ...
greetz
back2dos
Outras dicas
Se a imagem for uma carga externa (classe Loader), então você pode escrever:
Bitmap(myLoader.content).smoothing=true;
Se é interna (sua na biblioteca), você precisa clicar direito do bitmap da biblioteca> Propriedades e ative "suavização". Além disso, se você estiver instanciar-lo como um BitmapData, então você precisa fazer isso:
var bmp:BitmapData=new LibraryBitmap(0,0);
var bitmap:Bitmap=new Bitmap(bmp,"auto",true); //the third argument is smoothing
Felicidades ...
Você poderia tentar um simples antialias ao longo das bordas pela soma dos pixel que está lá e o pixel você estará sobrepondo. Você poderia dar uma olhada Wu antialiasing para um exemplo você pode usar como ponto de partida.
Uma nota rápida: rotação Bitmap é lento, então o carregamento do jogo, ele pode ser uma boa idéia para ter personagens que muitas vezes são rotativas, ou são comuns, girá-las a cada 1 grau o que é possível no jogo, o uso BitmapData.draw, e empurre-o para um array (ou um vetor no FP10, se possível), e depois usar esses mapas de bits.
YAY, correr-em sentenças!
Happy Coding! : -)