Dúvida tamanho da Textura

14 views
Skip to first unread message

Lucas de Jesus Matias

unread,
Nov 16, 2011, 1:31:17 PM11/16/11
to android-br...@googlegroups.com
Pessoal, to brincando com Andengine mas to com um pequeno problema
estou com uma textureRegion de 512x512 mas coloquei para o sprite criado a partir dela ser redimensionado numa scala bem baixa, de acordo com a tela, o problema é que a textureRegion ainda fica ocupando os 512x512, pois quando alinho 0x0 numa tela de 480x320 a Sprite fica a direita, pois os 512 da textureRegion não são redimensionados.

Como contornar isso? 

Ivan Lopes Alonso

unread,
Nov 16, 2011, 1:33:55 PM11/16/11
to android-br...@googlegroups.com
é uma imagem de fundo né ?

eu tive que ajustar manualmente pra acertar o tamanho da tela de acordo, nada muito complicado.

fora isso não testei nenhum outro jeito

Ivan Lopes Alonso

unread,
Nov 16, 2011, 1:40:54 PM11/16/11
to android-br...@googlegroups.com
eu arrumei a imagem na mão

depois disso testei no emulador, e agora que comprei um SII, testei nele e também esta ok a imagem... imagino que o cel deve auto-ajustar a imagem mesmo.

Lucas de Jesus Matias

unread,
Nov 16, 2011, 1:35:18 PM11/16/11
to android-br...@googlegroups.com
mas como ajustar manualmente se não da pra saber qual tela vai usar? 

Lucas de Jesus Matias

unread,
Nov 16, 2011, 1:45:44 PM11/16/11
to android-br...@googlegroups.com
o problema é que quero a imagem dinâmica, então eu uso o setScale por semplo setScale(0.1) pra uma tela bem pequena e setScale(1) para uma tela grande tipo um tablet.
Mas o problema é que eu redimensiono a Sprite e a imagem fica pequena no celular, mas o BitmapTextureAtlas (aliás, não é o textureRegion, me confundi :P) continua com o tamanho de 512, então a imagem fica como se tivesse 512x512 ainda, e só a imagem fica pequena.

Ivan Lopes Alonso

unread,
Nov 16, 2011, 1:50:26 PM11/16/11
to android-br...@googlegroups.com
no caso o desenho dentro fica pequeno, mas a imagem em geral no 512

tenta aumentar o tamanho do desenho então para pegar os 512 "?"

Lucas de Jesus Matias

unread,
Nov 16, 2011, 1:57:14 PM11/16/11
to android-br...@googlegroups.com
mas o problema em ficar 512 é que ele ocupa mais que a tela do celular, e eu quero que ele fique pequeno, mas quero que a BitmapTextureAtlas passe a ter o mesmo tamanho da imagem. 

Ivan Lopes Alonso

unread,
Nov 16, 2011, 2:06:27 PM11/16/11
to android-br...@googlegroups.com
você chegou a ler que os textures do andengine são baseados em "power 2" ? ou seja você não vai conseguir atribuir 123X347 nessa sua textura senao vai da crash no app

o que pode mudar o tamanho é o desenho dentro, mas não as texturas ou seja as imagems salvas mesmo

tenta entao, colocar menor a texture, tipo 16x16 ou algo assim

Lucas de Jesus Matias

unread,
Nov 16, 2011, 2:09:02 PM11/16/11
to android-br...@googlegroups.com
o problema que 16x16 ficaria muito pequeno pra tablet :/ acho que só vou tentar alinhar ela fazendo uns calculos mesmo. 

Lucas de Jesus Matias

unread,
Nov 16, 2011, 2:15:45 PM11/16/11
to android-br...@googlegroups.com
consegui ^^
pelos calculos mesmo, apesar de achar que o mais bonito seria fazer algum tipo de redimensionamento 
mas ficou assim para alinhar a direita:


this.sprite.setPosition( - this.sprite.getWidth() / 2 + (this.sprite.getWidth() * this.varScala / 2)  , 0);

ou seja, peguei a metade do width 512/2 = 256 e coloquei negativo, isso fez o sprite alinhar a esquerda mostrando somente a metade

então somei o tamanho da sprite x a escala e dividi por 2, então ele ficou alinhado mesmo tendo um campo invisível gitante ao redor :P

Se alguém tiver alguma coisa mais bonita para se fazer, é bem recebido :P

Lucas de Jesus Matias

unread,
Nov 16, 2011, 2:48:16 PM11/16/11
to android-br...@googlegroups.com
com a ajuda do Henrique Deodato melhorou um pouco, ficou assim

this.sprite.setPosition( (this.spDroid.getWidthScaled() - this.spDroid.getWidth()) / 2  , 0);


Lucas de Jesus Matias

unread,
Nov 16, 2011, 2:49:47 PM11/16/11
to android-br...@googlegroups.com
faltou renomear pra ficar mais fácil de entendre :P

this.sprite.setPosition( (this.sprite.getWidthScaled() - this.sprite.getWidth()) / 2  , 0);



Reply all
Reply to author
Forward
0 new messages