Programación de Juegos para Android

Programación de Juegos para Android 08: Tamaño y posición de imágenes

42 videos

238 minutos

Ahora lo que puedo hacer, por ejemplo, es decir que la imagen se dibuje en la esquina superior derecha de la pantalla. Y como yo ya sé cuánto mide mi pantalla de grande, lo que puedo hacer es ajustar la imagen para que se dibuje de forma que quepa exactamente en la esquina superior derecha. Para ello no solo basta con saber cuánto mide de ancho y alto la pantalla, sino que necesito conocer cuánto mide de alto y de ancho la imagen,

para poder hacer una resta entre lo que ocupa la imagen a lo que tiene la pantalla, para que se pueda ajustar correctamente. Por ejemplo, si calculo el ancho de Joe y la altura de Joe, puedo hacer que la imagen se dibuje en (width - widthJoe) y (height - heightJoe) para que quepa exactamente en la parte superior derecha de la pantalla. Para obtener estas cosas le puedo preguntar a mi imagen cuánto mide de ancho, cuánto mide de alto,

y esto dice cuántos píxeles ocupa tanto horizontalmente como verticalmente. Por ejemplo, la altura de joe y el ancho de joe se lo puedo pedir así. [Teclea] Esto tendría que ser un entero de hecho. Ahora lo puedo mostrar como quien no quiere la cosa en (width - widthJoe), (height - heightJoe). Y con esto se va a mostrar en la parte superior derecha de la pantalla, como veis ahora. Más o menos porque realmente aunque no se ve muy bien,

aquí hay unos pelitos arriba, que son los que tiene Joe. Vamos a hacer que se vean mejor los pelitos y así os enseño otro método de OpenGL. Cuando yo limpio la pantalla, se limpia de negro. Realmente yo le puedo pedir que me la limpie del color que quiera. Para ello lo único que tengo que hacer es otra llamada a un método que está en Gdx.gl, que es glClearColor. GL tiene un montón de métodos, y todos empiezan por gl porque son de OpenGL

puramente hablando, y es cierto que hay muchos, no me voy a meter en todos ellos, pero por ejemplo me interesa el de color para decirle que me coloree la pantalla de otro color distinto. La próxima vez que se llame a clear se va a mostrar del color que le haya pedido. Los parámetros son el rojo, el verde, el azul y el alpha porque OpenGL usa RGBA como podéis suponer. Los parámetros deben estar comprendidos entre 0 y 1, porque es como OpenGL funciona.

0 indica que no hay color, y 1 indica que hay color máximo. Si has usado RGB sabréis que es entre 0 y 255. Aquí es lo mismo con escala 0-1. Yo le digo 1 y es todo rojo. Le digo 0 y nada de verde. O le digo 0.5f y va a ser la mitad de azul, 128 o 127. Y finalmente en alpha le digo 1 porque, sí, me interesa que se vea todo lo potente que se pueda mostrar. Y en este caso se va a mostrar ahora con otro color distinto, y vais a poder ver que aquí arriba

lo que hay son unos pelos así que esto forma parte de la imagen y por eso se muestra un poco más abajo, pero como veis en este caso mi monigote se está mostrando en la esquina superior derecha. Otro aspecto interesante del batch es que puedo pedirle que dibuje tantas cosas como quiera. Yo puedo hacer varias llamadas al draw sin ningún problema. Le puedo pedir que me dibuje uno en el 0,0, la parte inferior izquierda de la pantalla.

Le puedo pedir en la parte derecha pero abajo. Le puedo pedir también que me lo dibuje horizontalmente en el 0, pero que lo dibuje todo lo alto posible, y con esto le estaría pidiendo que me dibuje 4 cosas. Y él sin ningún tipo de problema dice 'oye, yo te lo dibujo todo' y ni se inmuta. Pero como os he dicho antes hay muchos más métodos en el SpriteBatch, por ejemplo, podemos hacer que nos dibuje la imagen con un ancho y un alto específicos,

por ejemplo 300x250. Y en este caso la imagen se va a ver más grande sin duda, porque evidentemente en este caso se está mostrando en un espacio más grande. Resulta bastante intuitivo una imagen así escalada. Simplemente en este caso se muestra borroso, eso sí. Pero se muestra mucho más grande. Y al igual que más grande, como podéis imaginar se puede dibujar más pequeño sí parece. Entonces, construir imágenes no es muy complicado,

luego cuando empecemos con el juego en serio y empecemos a cargar cosas con Scene2D, cargaremos imágenes para representar el estado del juego con imágenes, como el monigote o los enemigos que tenemos que saltar, o el fondo. Siempre texturas, que es la forma más elemental de dibujar cosas en pantalla. Pero no es la última, dicho sea de paso, porque tenemos también, por ejemplo, TextureRegions, que sirven para representar regiones.

Si quieres enterarte de los nuevos cursos, suscríbete. No habrá spam, prometido :)

Sobre el autor

foto de jotajotavm
José Javier Villena

jotajota pa los amigos y jota pa los de más cnfianza.

Bio Seria: Analista-Programador en diferentes lenguajes. Tutor PREMIUM de reconocidas plataformas de nivel mundial como CodigoFacilito. Redactor de artículos para Cristalab. Mi canal de YouTube está patrocinado por la editorial ANAYA y LaTostadora. Me gusta explicar con detalle y poner varios ejemplos para que no queden dudas.

Bio Molona: Me presento :) soy informatico, ni frostis d hardware pero muy muxo de programacion, friki a medias o del to segun el dia. Me gusta programar, muxo. Manejo varios lenguajes y tdo lo ke sepa lo comparto x amor al arte. Este no es mi trabjo pero lo ago mejor y con +ganas y calidad que si lo fuera, x eso mismo, xq para mi es divertido. Solo spero al menos algo de agradecimientO!! ;)

Dios, qe gusto haber escrito este parrafo cm me a dao la gana sin pensar en ortografia ni tildes ni historias!!!!!