Echo v1.4: road to season two

Started by Drumpi, June 12, 2016, 11:30:54 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Futu-block

Ánimo chaval, ¿pa que me voy a ofrecer de grafista si ya hice los del plactom? je je

Pos eso, que con los del punkarra me felicitaron, es tambien como te coja el momento, hay momentos de lucidez que todo sale bien y otros que está uno mas espeso que que...

Drumpi

Pues me temo que de momento el proyecto está en stand-by. Llevo una temporada que me siento más cansado de lo habitual, y cuando llega la hora de "salir del curro" (teniendo en cuenta que ahora mi oficina es la misma habitación donde duermo, lo de salir es relativo), lo último que me apetece es seguir con el ordenador. Ya ni programo, ni gráficos, ni Blender, lo único que quiero es sentarme y descansar, incluso sólo ponerme a leer, ni consola siquiera.

Pero bueno, mejor eso que hacerlo con desganas, porque eso se nota en el producto final. Ahora me ha dado por el diseño de niveles en cartulina de un proyecto que tenía aparcado desde hace unos pocos años, y hace unos días estaba haciéndome unas gafas de VR para el móvil con cartón, de diseño propio (con estas gafas puedo ajustar la distancia entre los ojos, y la de las lentes a la pantalla :D ).

Volveré a ponerme con el juego en cuanto consiga recomponerme un poco. Espero que no sea a más tardar porque ya estaba bastante encarrilado el nivel, y aun quedan otros dos por hacer para dar por concluida la versión 1.4... al menos, hasta donde estaba previsto (lo suyo es incluir el nivel 2, pero como ya he dicho, el cambio de jugabilidad va a requerir de mucho tiempo de desarrollo).


Futu, como ya te dije, el problema del plactom ese no es que me mandes 200 tiles para un nivel, primero porque sólo puedo añadir un máximo de 95 por nivel :lol: , y segundo, porque hay varios niveles y hasta ahora tengo sólo 2 sets de tiles, 3 si separamos los del primer set entre madera y "metálicos"... y aun así, realmente, no sé cuántos sets necesitamos realmente :D
Además, te lías a mandarme gráficos, pero no haces los que te pido, y los cambios que te sugiero se te olvidan a los 10 segundos :P
Jajajaja.
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

Futu-block

ja ja, es lo que tiene trabajar de grati, lol

Drumpi

Pues si esperas que te pague por un proyecto del cual eres el director, lo llevas claro :D

En fin, la cosa sigue en stand-by. Poco a poco parece que recupero las ganas, pero no durante la semana. Hay varias partes a las que me gustaría meterle mano, pero siempre hay algo... más o menos complicado que me retiene: quiero hacer una nueva "arma" (entre comillas, porque no es permanente) pero no puedo porque programar la estación de recarga requiere de cierta animación y una modificación medio complicada de hacer en el mapa; quiero seguir con el nivel de la pirámide, pero no puedo porque tengo que probar los nuevos elementos de jugabilidad y reformular parte del nivel para incluirlos; quiero terminar con el boss del nivel pero tengo que comprobar la IA...

Bueno, si salgo del interbloqueo, seguiré avanzando en el juego... pero es que mi jefe me tiene frito con las prisas y con que me ajuste a los tiempos :S
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

Drumpi

Hola a todos:

Parece increíble que hayan pasado 3 años desde la última vez que toqué el código del Echo. Un año, vale; dos, ya me genera dudas ¿pero tres? :S
Bueno, teniendo en cuenta que el máximo de tiempo que le dedicaba a programar juegos, fuera de una GameJam, eran tres o cuatro horas, y que ahora me paso alrededor de 9h en el trabajo, creo que se entiende este parón.

El caso es que el jueves pasado, aprovechando que era fiesta, y no sé si movido por la inercia de trabajar entre semana, me dio por abrir el código del Echo y echarle un vistazo.
Se me ocurrió que podía dedicarle unos minutillos a escribir un poco de código, y eso se convirtieron en un par de horas.

Total, que en ese día, escribí suficiente código para que, a falta de algunos efectos visuales (ya sabéis: gráficos), se revelase el jefe del nivel 4 en toda su ¿gloria? A ver, no dejaba de ser una momia como las que ya había hecho (en especial, las últimas que mencionaba, que desafiaban la ley de la gravedad), pero en color morado (sí, me puse a recolorear sprites también ese día), por eso, la parte épica como que se resentía un poco :D

El caso es que esa parte está hecha, y también otra parte del boss, que no quiero revelar para no arruinar la sorpresa.

La buena noticia es que no ha sido cosa de un día. El fin de semana y los últimos dos días le he podido ir dedicando algunos ratillos sueltos y he podido seguir avanzando. No gran cosa, pero mejor eso que nada.

El caso es que al día siguiente estuve solucionando diversos fallos que había detectado en la lucha con el boss:
La generación del mismo no estaba teniendo en cuenta el scroll y algunos elementos se quedaban "pillados" al moverse.
Por otro lado, el combate tiene lugar en diversas "fases", y es necesario recargar y modificar el escenario tras cada una de ellas. Tenía un código provisional para probar el cambio, pero no era, ni de lejos, todo lo que había que hacer, y le dediqué bastantes minutos a añadir y corregir cosas. Aún no he terminado esta parte, pero es porque tampoco está implementada toda la lógica del combate.
El boss tampoco respondía correctamente. Por alguna razón, además de "volar", le dio por atravesar paredes. Vale que tenga poderes sobrenaturales, pero el "modo Dios" sólo lo puedo tener yo :D

Con todo esto, ya podía hacer una simulación de lo que será el combate completo (salvo porque aún no hay "arma" para vencer al boss, y no se le puede derrotar... aún), y estuve un buen rato probando, y cuando llegué a la última parte, un escalofrío recorrió mi espalda, una sensación que hacía mucho que no sentía, mezcla de nostalgia, diversión, y orgullo por un trabajo bien hecho. ¿Recordáis esa sensación cuando vuestro primer sprite se movía por la pantalla? pues algo así.

Y así llegamos a la última parte del diario de hoy. Anoche, por fin, di por finalizada la animación de la lava. Como ya comenté, estuve usando Piskel, y es una herramienta muy útil para hacer pequeñas animaciones en pixelart. Me ha llevado su tiempo, porque si ya me cuesta hacer gráficos, animaciones ni os cuento. Creo que ha quedado bien, pero aún no he podido probarlo in-game, así que a ver si hoy saco un ratillo y lo pruebo.

Aún quedan cosas para terminar el boss 4, y el nivel hace mucho que no lo toco, por lo que tengo que revisar qué está hecho, qué falta, qué hay que cambiar para añadir las nuevas mecánicas con las que estuve experimentando los últimos días, y añadir la decoración del nivel, porque de momento, estoy usando los tiles más básicos de suelos, paredes y rampas, y quiero que quede todo muy bien ornamentado :)
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

FreeYourMind


Drumpi

No, ya avisé por allí que he escrito esto.
Ten en cuenta que el diario de desarrollo oficial es este :D
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

FreeYourMind

jaja faltaria mas, fallar en gp32

Drumpi

¿Qué culpa tengo yo de que os hayáis ido todos a Discord? No puedo instalar el programa en el ordenador del trabajo, y no me voy a poner a usar el móvil. Al menos, puedo consultar los foros en modo oculto :D :D :D

PD: ayer empecé una pequeña animación, pero no hice mucho porque apenas le dediqué media hora :D
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

Drumpi

Bueno, pues creo que por hoy voy a terminar, y me voy a viciar un rato a la consola, que creo que me lo he ganado :D

Pues nada, estos días he estado, por un lado, de testeo de lo que ya había hecho.
Por otro lado, con la animación que decía, y como el boss ya está funcionando... o casi, porque he descubierto un caso por el que vuelve a atravesar paredes (las momias y su manía de no respetar las normas que les imponen los dioses). Bueno, como decía, como el boss ya está (casi) funcionando, el siguiente paso es que interactúe con los disparos, pero como ya dije, sólo le afecta un "arma" y claro, tengo que hacer que Echo pueda cogerla. Así que el trabajo de este fin de semana ha sido prepararlo todo para que Echo pueda conseguirla: añadir hueco al inventario, preparar la interfaz, arreglar los 40 errores que han salido por intentar leer fuera de los límites del array o de procesos que no existen...
Veo que he aprendido mucho desde que escribí el código del Echo (y lo medio desastre que era cuando lo hice ^^U), y desde luego, Notepad++ no es la mejor forma de programar, después de haber usado VS y su autocompletar, sus accesos directos a funciones, etc... pues se hecha de menos, pero aún tengo mis trucos bajo la manga (más difíciles de encontrar, porque con el calor, voy en manga corta).

En fin, que, en principio ya están hechos los dos huecos, y creo que tengo las versiones definitivas de los iconos y... espera ¿dos huecos? Pues sí, si habéis jugado al desierto, seguramente hayáis encontrado la cueva secreta en la que hay un pedestal vacío. se suponía que iba a contener un nuevo arma que, por falta de tiempo, no se pudo añadir ni en el tercer concurso al que se presentó ni en la edición del 10º aniversario.
Y he ahí una de las razones por las que se interrumpió el diseño del nivel 4-3, esta arma tiene una característica especial, que afecta a la jugabilidad, y quería añadirla en este nivel, además de otros como plataformas, los puentes retráctiles, los interruptores que se pueden desactivar...
Así que mis próximos objetivos deben ser elaborar las dos armas, de forma que me sirva una para terminar el nivel 4-3, y la otra para hacer daño al boss.

Aparte de eso, también he estado trabajando en algunos gráficos. Uno de ellos es para la zona del nuevo arma, y por otro lado, los iconos de estas. De momento sólo me he dedicado a mis gráficos, pero supongo que tendré que dedicarle un rato (muy largo) a crear las versiones stylish, ya que Fede no anda con ánimos de añadir más gráficos al juego.
Lo cierto es que eso me pone en un compromiso, porque yo no conozco las herramientas que él usa, ni sé si voy a poder imitar su estilo, y si tengo que intentarlo, me iba a retrasar muchísimo, y no quiero que eso pase, por lo que es muy probable que me vea forzado a eliminar los gráficos stylish del juego. De momento lo dejo en el aire, a cuenta de que quiera retomar su trabajo, o encuentre quién le sustituya.

Y algo parecido me pasa en el apartado sonoro: Caleb anda desaparecido... bueno, ha aparecido recientemente, pero ya me dijo que perdió los "fuentes" de las músicas que hizo, y no lo veo por la labor de continuar. Princemegahit también se ofreció cuando lancé la versión aniversario, pero también me ha dicho que anda corto de tiempo, por lo que me toca a mi hacerme responsable de las músicas. Ya no sólo es que tenga que crear melodías para el nuevo nivel, sino que tengo que recomponer melodías para alternar con las de los niveles previos.

Pero bueno, son muchas cosas las que hay pendientes, y mirar la lista de lo que falta sólo va a hacer que abandone antes de empezar, así que vamos a ir atacando a los problemas uno a uno, a medida que me vaya apeteciendo hacer una cosa u otra. Como dije, mi objetivo es terminar el boss del nivel 4, y luego el nivel, y para ello, mi tarea más inmediata es hacer el arma que lo matará (otra vez), y de paso, pues a ver si puedo hacer el otro arma y mato dos pájaros de un tiro... pun not intended.
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

Drumpi

Bueno, otro fin de semana y con ello, algo de tiempo para dedicarle al juego.
Entre semana me ha sido imposible, porque aparte de que por la tarde llego sin ganas ninguna de ponerme al teclado, también he estado liado, y por la noche... con el calor que ha hecho, ya me costaba suficiente dormirme, no era cuestión de echar más leña al fuego.

En fin, a lo que vamos: sí, he seguido con el tema del arma. Por desgracia los avances son bastantes escasos vistos desde fuera. He dedicado la mayor parte del tiempo a crear los gráficos, tanto de las armas en sí, como sus explosiones, disparos, gráficos para la animación de conseguirla... ya tenía el diseño de una, pero para la otra, la que acabará con la momia, tuve una inspiración cuando el sábado me pasé por una exposición de momias escaneadas por tomografía de alta resolución: una de las piezas expuestas era un ojo de Ra, y tenía una forma que era ideal para un arma automática, así que la usé de base.

El problema es el arma que se podrá coger en el nivel 4-1. Os puedo adelantar que es una especie de granada, que servirá para romper algunas paredes (tranquilos que las que sean obligatorias tendrán un gráfico con grietas que las distingan... aunque no prometo que no añada paredes rompibles que no se distingan :D ) y esto me da varios problemas:
Por un lado, no sé cómo gestionar la limitación de su uso: es un arma muy potente que puede eliminar varios enemigos a la vez, o causar daño a los jefes, por lo que lo normal es que tenga un contador que indique cuántas se pueden usar. La pega es que si romper paredes forma parte de la mecánica principal del juego, no puedo dejar al jugador sin granadas cuando es lo único que le permitirá seguir. Creo que puedo poner lugares de recarga, pero lo dicho, son demasiado potentes para que se disponga de un uso ilimitado... no sé cómo plantearlo.
Por otro, el gráfico de la explosión que he hecho tampoco me convence, y me tiré como dos horas el sábado con ella. La explosión tiene un radio de 6x6 tiles, y usará dos gráficos giratorios con transparencia... aunque me estoy planteando que funcionen de forma diferente.
De hecho, he planteado muchas cosas que no sé si cambiaré: se podrá lanzar en 8 direcciones, habrá un medidor de fuerza para lanzarlas, y no tengo claro si detonará por tiempo o al chocar (esto último puede ser muy problemático por la cantidad de procesos con los que podría interactuar, y aquí hecho de menos la herencia de C#).

Encima, no pude usar DIV2 para generar los gráficos de cuando se consigue el arma (la máquina virtual que usaba para ejecutarlo ha dejado de funcionar :S), y tuve que improvisar con lo que tenía. No ha quedado mal del todo, pero aún necesito retocarlo un poco, y he perdido como una hora y media haciéndolos, lo cual es una barbaridad de tiempo, teniendo en cuenta el que le dedico a la semana.

Pero bueno, finalmente el arma está en su sitio y ya se puede coger. Aún no se puede usar, y dadas las dudas que tengo, casi que mejor. A ver qué pienso esta semana.

A parte de las armas, le estuve echando un vistazo al nivel de testeo, que hace eones que no lo veía, y lo necesito para hacer las pruebas de las armas. Ya de momento la "granada" se ve enorme en las manos de Echo, es casi tan grande como él :D Lo cual es hasta gracioso, y sería muy útil para el caso en que el "problema" que compense la potencia de la granada, sea el tiempo que se tarda en poder lanzar la siguiente. Con una granada tan grande se puede ver el momento en que se puede lanzar otra de forma más fácil.

En fin, tengo unas cuantas cosas en las que pensar. Cualquier idea es bienvenida.
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

Drumpi

Lo siento por el silencio de radio, pero este fin de semana me ha sido imposible dedicarle tiempo al Echo. Tuve que salir para arreglarle algo a mi madre y estuve todo el fin de semana liado, y eso incluyó algunos días previos al viernes.
Además, ya lo dije, tampoco es plan de ponerme entre semana a las tantas de la noche a programar si tengo que madrugar para ir a trabajar :D

De momento, lo único que puedo contar (porque no he hecho más) es que he reducido el tamaño de la nueva bomba, a un tamaño más manejable por Echo, aunque creo que, definitivamente, voy a usar el sprite de 11x11 para cuando la granada llegue al nivel 3. Me interesa que el jugador pueda saber cuándo se ha llegado a ese nivel porque va a funcionar de forma diferente: como ya comenté (creo), la idea es que en nivel 1 la granada explote por contacto, con un radio mínimo; en nivel 2 la explosión será mayor, pero la granada se quedará pegada un par de segundos antes de explotar; y el nivel 3, el radio de explosión va a ser muy considerable, pero la granada rebotará en las paredes y explotará con el tiempo, y por eso me interesa que el jugador sepa cuándo la granada se detendrá en su destino o cuándo va a empezar a dar vueltas por ahí.

Pues eso, que he hecho un sprite más pequeño y que lo he estado probando, a ver qué tal se veía... y de paso he revisado el evento al conseguir dicha arma.

Por otro lado, me he puesto a mirar el código de control del arma, para añadir lo que necesita la granada para funcionar. Hay muchas cosas que quiero agregar, porque quería implementar un medidor de fuerza, por lo que tengo que poner el medidor, moverlo para que apunte en la dirección de lanzamiento, implementar los distintos estados (reposo, cargando, lanzar, ¿tiempo de recarga?)... Así que, como le dedico ratos sueltos, y quiero ir por partes, he cogido y he creado una estructura básica en el código, que no es más que la "máquina de estados": he planteado las 4 zonas, una por estado, y qué tiene que pasar para cambiar de una a otra (pulsar el botón, soltarlo...), aunque no están todas aún. Luego, entre comentarios, he puesto qué se tiene que hacer en cada una de las secciones, y la idea es ir sustituyendo cada comentario por su código, de esta forma sé lo que tengo que hacer en cada momento, lo que me falta, y programar aquello que me apetece en ese momento.

Creo que es la primera vez que empleo este sistema. Por lo general suelo tener la lista de cosas por hacer en la cabeza o en un documento de texto. A ver qué tal sale.

Debería intentar terminar con la granada este fin de semana... aunque debería terminar con el arma del boss para poder ir terminando esa parte, pero bueno, soy muy veleta y prefiero programar según me apetece en ese momento, especialmente si sólo tengo un rato, porque no me gusta ponerme con las cosas difíciles sin haber "calentado" previamente con algo sencillo.
En fin, ya lo iremos viendo. No quiero adelantarme porque no suelo cumplir mis propios plazos, ya sea por una cosa o por otra, y este mes creo que voy a tener un poco más de tarea de lo habitual, y cuando me vaya de vacaciones, voy a dejar los ordenadores aparcados, para descansar un poco de ellos.
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

Drumpi

¿Nunca os ha pasado que no teníais ganas de sentaros delante del ordenador, que te obligas a escribir, al menos, 15 minutos de código, y cuando te das cuenta, llevas una hora? Pues eso mismo me pasó ayer. Tenía como 30 minutos antes de tener que ponerme a hacer la cena, y no me apetecía mucho ponerme a programar, pero tampoco quería desaprovechar el tiempo libre que tenía jugando a una consola.

Total, que encendí el ordenador, ya más o menos con las ideas de lo que quería desarrollar, y empecé a escribir algo de código. La guía que creé ayer fue de mucha ayuda, porque sabía dónde tenía que meter mano. Quería preparar, al menos, la flecha que indicaba la dirección y la fuerza hacia la que tirar la granada (más sobre esto, después), y pensaba que sería fácil, con unas 5 o 6 líneas y se acabó... pero como andar con trigonometría, ángulos, denos y cosenos era un engorro (y recordemos que la Wiz ya está lo suficientemente saturada como para meterle cuentas difíciles), preferí hacerlo "a la antigua", y eso implicaba escribir mucho más código.

Empecé colocando la flecha, luego haciendo que mirara en la dirección correcta, luego trasladé el código a los otros estados, añadí el indicador de fuerza y cuando me quise dar cuenta... estaba programando en la oscuridad ^^U
También había avanzado mucho más de lo que me había propuesto: puse la flecha señalando hacia dónde iba el lanzamiento, un medidor de fuerza que crece mientras mantienes el botón pulsado, e incluso que descontase la exp del arma al lanzar la granada. Sólo faltó precisamente eso, lanzar el nuevo objeto, que está sin programar, y el tema de la "recarga", o sea, poner un tiempo entre que se lanzó la granada y se pueda lanzar la siguiente. Para lo primero, tengo que repasar el código de los objetos que aumentan la experiencia del arma, ya que el comportamiento es similar (hasta la parte en que explota).

El caso es que, estaba haciendo las pruebas, y algo que me empezó a preocupar ayer se hizo visible en ese momento. Estoy dudando si el tema de tener que "cargar" el lanzamiento es buena idea o no. Eso obliga al jugador a ser previsible, y estar pulsando el disparo antes del momento de lanzar la granada, y además, a coordinarlo con la fuerza justa para que alcance su objetivo. Y lo peor de todo, moviéndose todo el rato, porque mientras cargas el arma, echo se sigue moviendo, y tienes que mantener los cursores pulsados para definir la dirección de lanzamiento.
Aún no he hecho las pruebas pertinentes, quizás le estoy dando demasiadas vueltas y es el comportamiento normal de este tipo de disparos, pero no dejo de preguntarme si hay forma de simplificar esto. No sé, por ejemplo, que no haya indicador de fuerza, y todos los lanzamientos son iguales de fuertes. O que mientras cargas, que no te puedas mover (sería complicado de programar, tal como está la cosa, pero tendría que mirarlo). No lo sé, hasta que no pueda lanzar cosas en un entorno controlado, no tendré la certeza de estar haciendo lo más cómodo para el jugador.

También hay que tener en cuenta que las granadas son un arma que sólo usarán bien los expertos, porque tenerlas en su máxima potencia es muy complicado: no solo pierdes EXP al ser golpeado, sino que también, cualquier uso de ella reduce dicho indicador. A eso le sumamos que la barra de EXP sólo tiene 10 unidades (¿eran 10 o lo bajé a 9?), y sólo las 3 más altas te permiten lanzar el verdadero "Solar Blast". A cambio, estamos hablando de una explosión de 6 tiles de diámetro (96 pixels), que causa 12 puntos de daño (frente a los 10 que hace la Leaf Blade a máxima potencia) a todos los enemigos a los que alcanza, y que puede permanecer suficiente tiempo como para volver a dañar a los enemigos a los que ya ha hecho daño.
...Aunque esto último debo revisarlo, creo que los enemigos, al colisionar con un "impacto de arma" (un proceso secundario que llevan todas las armas para hacer colisión... o así lo recuerdo), reducen la energía del impacto para que así muera, y si eso pasa, la onda expansiva sólo podría afectar a 1 enemigo por frame. Crear un nuevo tipo de colisión significa añadir el mismo código a más de 25 tipos de enemigos.

Y eso es otra cosa que me preocupa: tengo que hacer que la granada, en sus dos niveles inferiores, explote al impactar con un enemigo, y no puedo ir haciendo collision con todos los tipos de enemigo que existen (por un lado, porque como digo, son muchos tipos, y segundo, porque sería usar demasiadas veces "collision" y eso va a penalizar el rendimiento).
Aunque acabo de recordar que tuve hace tiempo una idea, y la voy a escribir para que no se me olvide: que la granada tenga un "impacto de arma" activo, con 1pto de daño. Así, al acercarse a un enemigo, este recibirá un daño inicial que los de alrededor no, "matará" al impacto, y eso activará la explosión. De nuevo, tengo que revisar el tema de la invulnerabilidad de los enemigos tras recibir un impacto... y creo que la Leaf Blade tiene mucho que decir al respecto.


Por último, quería anotar algunas ideas para usar a Doggy en el juego, tal como mencioné en el foro de GP32Spain, pero este mensaje se ha alargado mucho más de lo esperado, así que lo dejaré para otra ocasión.
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

Drumpi

Bueno, otro fin de semana, y otro empujoncito al juego. No demasiado porque tampoco le he dedicado un montón de horas, pero han sido productivas.

Me he centrado de nuevo en una de las nuevas armas: la Solar Blast. Ya hablé de ella, y finalmente he conseguido que en el nivel 1 explot... desaparezcan al contactar con una pared, porque no me he puesto a crear la animación de la explosión, aún (ya sabéis que me cuesta mucho ponerme a dibujar, y más a animar). También que en el nivel 2 se pegue a las paredes y, al cabo de un momento, explot... desaparezca.
Las del nivel 3 también rebotan contra paredes, suelo y techo (más sobre esto después), y al cabo de un rato, explotan... sí, estas sí explotan. No me gusta el gráfico de la explosión ni el tamaño de la misma, pero sí he conseguido darle el efecto que quería.

Por desgracia he tenido que prescindir del lanzamiento en 8 direcciones. Hice pruebas y era anti-intuitivo, no conseguía lanzar las bombas a donde quería, y encima, al tener que cargar el disparo, tenía problemas para mantener todos los botones funcionando a la vez. Total, que hice otra prueba y, finalmente, el funcionamiento será similar a las armas: las bombas se lanzarán en arco tanto a izquierda como derecha, con las únicas excepciones verticalmente, tanto arriba como abajo. Esto será muy útil a la hora de disparar al suelo mientras se salta de una plataforma a otra. Aún tengo que ajustar el tiempo de carga y el arco, pero de momento funciona.

El caso es que me ha retrasado mucho más de lo esperado. Hace mucho que no leía el código y se me habían olvidado algunos detalles, y en programación los detalles son imprescindibles. Tras un rato de experimentación y de leer código, ya lo entendí y pude arreglarlo todo (la mitad del tiempo de ayer fue solucionando problemas).


Lo peor pasó el sábado: mientras programaba, en una de las pruebas, en concreto, en la parte donde se lanzaban las bombas, vi que era muy divertido intentar lanzarlas y acertar a una posición concreta, y se me empezaron a ocurrir un montón de situaciones en las que sería muy útil tirar una bomba por encima de una pared, hacer que esta rebote... era como un minijuego en sí mismo... pero no era lo que buscaba. De hecho, sería interesante que se puedan lanzar con un apuntado básico mientras se corre, o bien, cuando se está quieto, poder apuntar con precisión y con la fuerza necesaria. Y que además, se puedan detonar con una segunda pulsación.
Y entonces esto me planteaba un dilema: usar las bombas que ya tenía planificadas, que tenían su utilidad, o estas nuevas, que daban mucho juego... y como tengo el cerebro simétrico, pues no me decidía. Aún hoy tengo mis dudas y, cuanto más lo pienso, más me gusta la idea de las nuevas. De momento he seguido el plan trazado, y he dejado una copia de este tipo de granadas por si quiero usarlas.

Aún tengo que sopesarlo, pero no me gustaría escribir código que no voy a utilizar, dado el tiempo que tengo. También me gustaría oír opiniones, ya sea por este foro como por el otro. Ya digo que me tiré un buen rato lanzando granadas sólo por diversión :D

...aunque se me está ocurriendo que se pueden fusionar ambas ideas... que las bombas, aparte de explosionar por tiempo (o no), que se puedan detonar con una segunda pulsación... Mmmm
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

Drumpi

No, no se ha parado el desarrollo (de momento). Es sólo que esta semana no he tenido tiempo de ponerme a escribir los avances del fin de semana pasado. Teníamos una entrega en el trabajo a un cliente y... bueno, que se ha liado la cosa.

Por desgracia, esta semana no tengo muchos avances que contaros. Si la semana pasada estuve probando el lanzamiento de granadas e implementando los 3 niveles diferentes de uso, en esta estuve haciendo ajustes a la explosión, pues como creo que ya comenté, me la esperaba mucho más grande.
Así que estuve experimentando con diferentes tamaños, lo cual me llevó un buen rato hasta que di con el que andaba buscando, y tras eso... me entró una depresión ¿tenía que rehacer el gráfico? Uff, qué pereza. Me llevó casi una hora, no pensaba repetirlo. Así que hice un reescalado guarro, y lo dejé a modo de guía, hasta que se me ocurra cómo mejorarla. Eso me llevó a otro problema: no tenía las animaciones de las explosiones medianas y pequeña, y como no andaba con ánimos (ni ideas) para gráficos, lo dejé aparcado.

Lo que sí tenía que ir haciendo era el proceso de colisión que afectaría a las paredes y enemigos, así que me puse a programarlo, a crear sus gráficos de colisión (unas circunferencias que tendrán alpha = 0), a sus invocaciones y a probar. Cuando ya tenía su tamaño definido, y el tiempo de duración, me puse a programar los tiles que se podrían romper con ellos y... Bueno, programados están, pero no los he añadido al mapa de testeo ni los he probado. Ese es el siguiente paso.

También tuve que reordenar algunos gráficos, de cara a añadir los gráficos de colisión, de explosión y una pequeña animación para indicar que la bomba está a punto de explotar por expirar el tiempo.

Desde entonces, ha sido una cosa detrás de otra y no he podido ver si la cosa funcionaba (al menos, de forma burda, sin animaciones ni efectos). Creo que tengo pensado cómo animar la rotura del tile, pero eso será a partir de mañana.
En fin, que eso es lo que hay. Poco a poco, pero avanzando. A ver si termino ya la granada y me pongo a... no sé si será hacer las modificaciones para usarla en los tres subniveles correspondientes, o a programar el arma para liquidar al boss. Ya veremos.
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)