Programación de Juegos para Android

Programación de Juegos para Android 34: Box 2D y Scene 2D parte 4

42 videos

238 minutos

Como os dije, he creado el actor para representar el suelo y el actor para representar el pincho. En ambos casos es sencillo, es copiar y pegar el código de Box2DScreen y ponerlo de forma bonita, siempre creando, primero la definición del cuerpo en la posición que le corresponde, y luego dándole forma de caja o pinchos según lo que toque. Aquí veis que el suelo tiene forma de caja, pero los pinchos utilizan los vértices

que había creado anteriormente. En el caso del suelo, para instanciarlo primero le digo dónde está el borde del suelo. Por ejemplo, en la posición 1. Luego le digo el ancho en metros, de modo que si le digo 1000 va a tener un suelo de 1000 metros de ancho. Y la Y es el borde superior, lo que hace que el borde superior y donde van a descansar el resto de objetos sea lo que digo. Para los pinchos digo en la X donde está los pinchos horizontalmente,

y en la Y dónde descansan los pinchos, que debería ser el mismo valor de Y que tenga el suelo. Con esto ya podría ir instanciando mis actores. Por ejemplo, primero obteniendo las texturas que voy a necesitar, como pueda ser la del suelo. FloorTexture, OverFloorTexture y SpikeTexture. Por un lado cargo floor.png, overflow.png, y pinchos, que podría renombrarlo por spike.png, será la de los pinchos, y spikes. Ahora lo que puedo hacer es crear,

por un lado la lista de FloorEntity, para representar todos los suelos que voy a crear. ¿Por qué quieres una lista?, diréis. Imaginad que quiero poner escalones, tendré que guardar todos mis suelos para saber cuándo saltas de un suelo a otro. También necesito una lista con los pinchos para poder tener varios pinchos en mi nivel. Como estamos en Java 6, debido a que tenemos que respetar la compatibilidad con Android, tenemos que pasarle siempre el tipo

de datos en el ArrayList, no basta con usar un diamante, porque eso es de Java 7. Le debo decir que es un ArrayList de FloorEntity y de SpikeEntity. Y finalmente, agrego la primera instancia de Floor que voy a crear, asociada a este mundo, con este suelo. Y la voy crear en X=0 y le voy a dar un ancho de 1 km, y le voy a poner de base 1 metro de altura. Similarmente, ahora crearé un pincho, en el mismo mundo usando la misma textura, y le voy a colocar a una posición de

6 metros, más o menos. Con una base que esté colocada en 1 m. Finalmente, itero sobre mi lista de suelos, y para cada uno de ellos lo agrego al Stage, y lo mismo con los Spikes, verdad. Por último tengo que hacer algo parecido para eliminarlos a todos del Stage. Por un lado, el suelo lo debo desacoplar, y finalmente eliminar. Y parecido, tengo que eliminar todos los pinchos, en los dos sentidos. Perfecto. Si yo ahora quisiese hacer una prueba,

poniendo por ejemplo como valores 1.5, veríamos todos los objetos que he creado. O no, quién sabe. No sé por qué no se ve… Ah, vale, que… A lo mejor… he olvidado renombrar… perdón. Claro que debo renombrar en el Manager, el archivo. Y ahora sí, deberíamos poder visualizar todo lo que hemos creado. Tanto el suelo, como el jugador, como los pinchos. Sólo queda, proporcionar el comportamiento para que el actor pueda saltar cuando hagamos clic

o toquemos con el dedo la pantalla, y obviamente que se pueda desplazar mientras esté vivo.

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