Cherils; 20151204

Hoy estaba menos hostiado y he conseguido reparar las cosas que no funcionaban. Ahora la persistencia de enemigos con el nuevo formato en ROM está completada, y además puedo activar por separado persistencia de posiciones/direcciones y persistencia de vivo/muerto, lo cual mola miles.

Ahora tengo que hacer una serie de tareas más o menos pequeñas (unas más, otras menos):

  • Revisar el mapa y eliminar puntos de cambio continuo de pantalla, que hay unos cuantos y son un dolor [rehacer].
  • Dejar que Cheril salte un poco más.
  • Ajustar los umbrales de VY empleados para cambiar el frame de animación. Ahora mismo el frame definitivo salta demasiado tarde y en saltos normales apenas se ve.
  • Cambiar el tile de la lluvia que están todas las gotas alineadas para que sea un poco más random.

~

Veamos, recomponiendo: Cheril salta un poco más, los umbrales por ahora me gustan con las nuevas velocidades, el tile de lluvia es mejor, he metido la animación de rebote (que nos deja inmunes 16 frames, lo suficiente para no engancharnos demasiado), he integrado algunos cambios custom para d’veel’ng como medio estándar, he subido MK1 a la 0.6, y ahora debería ponerme a tocar el mapa.

Luego de eso tendría que hacer las cosas nuevas, que son:

  • Poner una pantalla cerrada con un señor en la puerta (Eleuterio, por ejemplo) y que en esa pantalla esté la estrella final.
  • Exigir 25 monedas para que te abran la puerta.
  • Que la tecla “abajo” reduzca la velocidad de subida [*].
  • Gargajos.

[*] No sé qué funcionará / quedará mejor, tengo dos opciones: o bajar a la mitad/tercio/cuarto/cantidad definible en config el parámetro “PLAYER_VY_JUMP_MAX”, o simplemente sumar una cantidad a VY si VY < UMBRAL_MINIMO en cada frame que se pulse abajo. Como lo segundo es más sencillo, lo probaré primero a ver.

~~

He puesto lo de sumar una cantidad a VY y parece que funciona guay y tal. Da un poco más de juego y control, mola. Lo dejo así. Ahora tengo que tocar un poco el mapaw. Pero eso es lo más chungo de hacer aquí .-~… No paran de mirawr.

TOMIRAR: Misteriosamente a veces se muere porque sí 😕

~~~

Bueno, como no puedo avanzar en ninguno de los otros frentes, voy a divagar un rato sobre el gargajazo. El gargajazo saldrá al soltar el botón B. Necesito, por tanto, controlar esto. Puedo usar la variable que empleo para controlar que el botón de disparo no se pueda dejar pulsado, mismamente. De hecho, el gargajazo será algo que sustituirá a los disparos. Lo integraré de forma que lo pueda reaprovechar en algún otro juego y, como siempre, lo parametrizaré en config.h.

A ver, el gargajazo es siempre en horizontal, en la dirección hacia donde mira Cheril. Tendrá una longitud máxima, y ese parámetro molaría que variase dependiendo del número de frames (con una cota máxima) que llevamos pulsado el botón. Usando un divisor, y teniendo en cuenta que hay 50fps, podría disparar a nº_de_frames pixels de distancia.

Creo que lo mejor es primero dejar el disparo del gargajazo listo y luego ya pensar en la interacción con los malos. Dándole una pensada rápida, cambiar la posición X de los enemigos verticales y cambiar mx de los horizontales podría funcionar. El problema es que los cambios se harían persistentes al cambiar de pantalla y no tengo demasiado claro que el código tonto de control de los enemigos lineales esté preparado para esto, pero todo es probar y luego apañar si falla. Pero eso luego, antes hay que gargajear.

El gargajo tiene ya los 4 patrones en el set para los sprites, son: 248, 249, 250, 251, dos frames por dirección, derecha – izquierda.

~~~

Joder, por fin vuelvo a ser yo. Los gargajos han funcionado a la primera, con animación incluída. Por cierto, que asco, ha pasado alguien por detrás que olía como si se hubiese bañado en kikos. Fatigaza. Ahora lo que tengo que hacer es la colisión con los enemigos. A ver qué tal se reacciona. Tendré que ver cómo no liarla demasiado parda. Por eso, en vez de ponerme a teclear como un loco, me voy a ir a comer galletas mientras me lo pienso.

~

Galletas comidas. Colisión pensada.

~

OK! Tengo la colisión hecha. Los enemigos se desplazan. Los horizontales cambian de dirección. Por ahora parece que está guay, pero ya empezarán los glitches. Ahora tengo que ver por qué @#!! hay veces que se muere sola Cheril. ¿Evil tiles o enemigos mal detectados? Me inclino por lo primero. Lo he tocado hace poco y ya se sabe como son mis toqueteos. Pirata.

Voy a implementar lo otro que queda, el safe landing over the head of bad guys, o sea, que si colisionas desde arriba sólo rebotes.

~~

Sobre el bug que cazo, está en efecto relacionado con la colisión con tiles que te matan. Hay falsas detecciones, voy a mirar un rato por qué… Pero es raro, el código es realmente simple en este supuesto…

~~~~

Encontrado. Se trataba de un pequeño cabo suelto que hacía que fuera posible que, en las subidas, no se estuviese actualizando correctamente pty1 y, por tanto, pudiese haber falsos positivos.

Voy a propagar el arreglo a todos los demás engines. En otros será menos aparente, pero ahí está. Goddess, ROM1, ROM2. > 1)… A ver qué tal se da.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s