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.

Foi útil?

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! : -)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top