Cherils; 20160111

RIP David Bowie.

Empiezo apuntando algunas cosas:

  • Tengo que modificar la colisión de los fantys si quiero que se mueran, porque ahora colisionan con todo (incluso con los tiles que matan). Esto ralentizará aún más la historia, pero meh. Hoy estoy un poco meh.
  • Tengo que ver la forma de ejecutar el fire script tras la animación de agacharse cuando pulsemos B, que queda mal que para coger objetos se agache pero para usarlos no.

Voy con esto, tengo que dar una pensada.

~

Creo que lo tengo. Además, me ha servido para hacer un par de refactorizaciones de código que han hecho más “flexible” el motor en un par de sentidos, lo que está bien.

Probando, probando . . . ¡A la primera! Ahora voy a reparar la colisión de los fantys en el supuesto de que quiero que se mueran con el tile muerte. Cosa de dos minutos.

~

Hecho. Y además, con explosión, que no la tenía planeada y he tenido que modificar levemente el manejador de enemigos para incluir el código de la explosión también en el supuesto que nos ocupa. ¡A otra cosa! ¿Queda algo? Pensemos, porque creo que lo suyo es que siga haciendo el nivel. Ya saldrán otras miserias.

~~~

Se me ha ocurrido un puzzle en el que hay que abrirse el camino moviendo el hueco (de forma rotatoria) en una serie de pilares:

 123
XXXX
X XX
 XX 
XX X
XXXX  

Botón A: 1 y 3 ARRIBA
Botón B: 2 y 3 ABAJO
Botón C: 1 y 2 ARRIBA

Para hacer esto necesito hacer incrementos o decrementos de flags usando un módulo. Voy a implementar una operación de módulo para flags y listo. MOD FLAG n, m hace flags [n] %= m;

Damos los valores a las flags $_A = 1, $_B = 3, $_C = 2, que es la posición del hueco. Pulsar los botones incrementa o decrementa estos valores. Al final se actualiza el tile que sea y tal. En plan basicón. Voy a dibujar la pantalla y anoto números necesarios.

~~

Las posiciones de las columnas son X = 5, 7 y 9. Las he alineado a la parte superior de la pantalla para no complicarme el script. Los botones deben detectarse en esas posiciones, Y = 9. Voy a hacer el script a ver qué tal se da.

~~~

Urm. Lo he hecho muy rápido y se ve demasiado simple. SEGURO QUE ESTÁ MAL. Luego lo pruebo.

~

No va, pero creo que es por un problema con el SET TILE, que aún no lo había probado. Es posible además que esté pasándole mal los valores o que no entienda bien los flags o cualquier otra mierda. Voy a poner debugs.

Nah, era porque hice unos cambios en msc3nes para que pudiese leer las coordenadas de los flags y no había recompilado. Pero tengo problemas con los módulos cuando el flag es negativo. Creo que voy a tener que hacerlo con opcodes nuevos que hagan todo (decrementar / incrementar en un rango)

DECRANGE FLAG, MIN, MAX
flag [n] = flag [n] > min ? flag [n] - 1 : max;

INCRANGE FLAG, MIN, MAX
flag [n] = flag [n] < max ? flag [n] + 1 : min;

Con esto lo tendría y además resolvería el tema de tener que alinearlo arriba del todo… Voy a ello. Y para mostrar picha, lo bajaré todo un tile y así de paso veo que funciona perfecto.

¡Funciona perfecto!

Pues ya está el recorrido hasta la primera pieza completo.

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