Programación de Juegos para Android

Programación de Juegos para Android 36: Cómo crear escalones

42 videos

238 minutos

Vamos a optimizar el juego, y primero quiero agregar más escalones para que los tengamos que trepar, y luego pinchos. Antes que nada, he encontrado una errata en este fragmento de código, FloorEntity está mal porque la X ya es el borde izquierdo. Me debería bastar con poner una X para indicar que Scene2D debe ponerlo ahí. Como son coordenadas de Scene2D ya está bien, pero vaya, que he cometido un error. Ahora lo que voy a hacer, sí,

es que el escenario se pueda ver más pequeño para poder visualizar más al horizonte. Voy a bajar la constante PIXELS_IN_METER de 90 a 45. Ahora todo se verá más pequeño. Así. La gracia de esto es que ahora tengo sitio para poner más suelo, y esto es fácil, porque es lo mismo que lo que he hecho aquí. La única diferencia es que ahora tengo que darle otros parámetros, por ejemplo, lo voy a poner a 12 metros de distancia del origen, haciendo que ocupe 10 metros,

y poniendo la base en 2 metros, para hacer que lo tenga que saltar. Ahora habrá un segundo suelo que aparecerá ahí donde veis. ¡Anda! Ha saltado bien, pero muy rápido. Este es un detalle que debo arreglar también. Estuve investigando y lo que debo hacer es, que sí, cuando saltas pegas un impulso que del chute te hace subir, pero debes bajar más rápido. Y descubrí una forma de hacer esto. Esto se saca por ensayo error. Lo que hay que hacer es, que si está saltando

el jugador se le aplique una fuerza negativa y más intensa que la fuerza de subida. Así que para no ensuciar, voy a extraer otra constante llamada IMPULSE_JUMP, que voy a mover a Constants, para determinar la fuerza del impulso. Y, ahora sí, lo que voy a hacer es introducir una fuerza negativa, de sentido opuesto a IMPULSE_JUMP, y un 25% más potente. Con esto quedará mejor. Esto está hecho, como digo, por ensayo y error, pero se nota ahora que baja con más velocidad.

De hecho ahora me he pasado, voy a darle un 15%. O no sé, lo mismo es porque soy demasiado malo jugando. Como veis, he chocado con el borde pero no está muerto, así que lo que debo hacer es, agregar una cosita en el borde del suelo para que cuando choques con este borde se comporte como un pincho. Se trata de agregar un objeto que le permita morir si golpea con la pared, igual que hace en el Geometry Dash. Esto es sencillo, debo agregar un nuevo Body, y un nuevo Fixture,

y lo que voy a hacer es crear un nuevo Body, son su propia definición. Va a estar posicionado en el borde izquierdo. Y va a estar posicionado un poco por debajo del medio para que no quede exactamente en la misma posición que el otro. Y después, lo que voy a hacer es crear una nueva Fixture, como LeftBox. Voy a hacer también que tenga únicamente 0.2 metros de ancho porque no quiero hacerlo gordo, pero le voy a dar de alto 0.45 para que no pueda golpear con la esquina,

porque no me interesa que muera en esos casos. Cambio las variables, para que no se comporte de forma rara. Y con esto, es importante, por último debo asignar a la fixture de este objeto un UserData, que va a ser Spike para que se comporte igual que un pincho y muera, básicamente. Asumiendo que no haya errores, debería estar correcto. Sí, lo está. Para verificarlo voy a hacer que se imprima por pantalla un mensaje cuando se muera que sea, GameOver. Ahora si hago el salto.

Como veis, pone GameOver. De hecho, no avanza. Esto tiene que ser muy fino porque si no como veis queda un borde transparente, así que voy a hacerlo aún más estrecho, de 0.02. Debería quedar perfecto ahora. Bien. Mejor. Pero la gracia evidentemente está, en que si yo hago bien los saltos y los coordino bien, no tengo ese problema y puedo avanzar. El problema ahora es que he desaparecido, así que mi último apaño será hacer que la cámara pueda seguirme.

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