PongPong; 20160212

Hoy quiero hacer pequeñas tareas para seguir completando esto poco, y a ver si este finde puedo darle a las fases. Por lo pronto, quiero ver si es factible esconder el sprite original (el de la rubia) para poder cambiarlo por el de linlin usando una combinación de teclas. Todas las paletas del juego cambiarían también.

Otra cosa que quiero hacer es ver cómo detectar el final de la fase. Lo suyo sería llegar a cierto punto y comprobar si hemos cogido las moscas. Puedo ver si hay sitio para un sprite de un enemigo que nos hará perder una vida si no tenemos todas las moscas. ¿Una rana?

Cuando tengamos todas las moscas, el sprite de la rana estará sonriente y no colisionará. Así podremos avanzar hasta sobrepasar el tile número 4088 (la mitad de la última pantalla), o quiza el 4090, para dejar margen para poner la rana.

También hay que ver la forma más mínimal de meter una gota que caiga desde arriba de la pantalla. Necesita colisión básica.

Vamos primero a hacer cuentas…

La prota ocupa 65 patrones. Ahora mismo hay 179 ocupados, con lo que quedan 77. 77-65 = 12, me quedaría demasiado poco para meter la rana. A menos que haga fullería e intente buscar repetición. También hay un par de cells que no uso y de los que podría ir prescindiendo.

Hago backup y me pongo a ello…

Otra cosa que tengo que hacer es preparar la zona de RAM compartida para poder atender a comandos del menú (por ejemplo, para las ROMs que tengan dos juegos – hablo del Multicart, bla bla bla). Con 16 bytes me basta, pero tengo que tocar el .cfg para meter el segmento y dejarlo protegido, y tocar neslib para que no limpie esa zona de RAM. Futesas, futesas.

Otra cosa: también molaría que las fases 5-8 (1-4 repetidas) tuviesen la paleta levemente alterada. No tanto como para perder la identidad (rojizo para lava …) pero sí para hacerlas levemente diferentes.

Vamos, que tengo que hacer 12 paletas más (4 más las 8 alternativas para el juego modo “N”).

~~~

Ángel me ha sugerido un tipo de enemigo que puede venir bien y hacer secciones muy chulas: un bloque que no te mata, pero que al “pisarlo” (o culiarlo) se va para abajo a toda leche y luego vuelve a subir poco a poco. En realidad funcionaría como una plataforma móvil vertical (a modo interno, quiero decir, si tiene que arrastrar al jugador), así que tendré que introducir en la ecuación las variables de nombre misterioso (no sé qué coño significaban, ni si eran siglas, pero llevo años usándolas), al menos en el eje Y: pgtmy (¿Player GoTten MY? es posible).

Este es el cacho de código de MK1 NES que controla las plataformas verticales:

	// Vertical moving platforms
	if (
		(en_my [gpit] < 0 && pry + 17 >= en_y [gpit] && pry + 12 <= en_y [gpit]) || 		(en_my [gpit] > 0 && pry + 16 + en_my [gpit] >= en_y [gpit] && pry + 12 <= en_y [gpit])
	) {
		pgotten = 1;
		pgtmy = en_my [gpit] << (6 - en_status [gpit]);
		py = (en_y [gpit] - 16) << 6; pry = py >> 6;
		pvy = 0;
	}

El tema debe ser una simplificación de esto porque sólo es para descender.

Creo que podría “enganchar” esto en la colisión. Si hay colisión, primero se comprueba que esta sea en la parte alta del tile (con los valores que manejo, con pry entre en_y – 16 y en_y – 12). Si es así, arrastramos: pvy = 0, pgtmy = BLOCO_VY_FALL << FIX_BITS; pgotten = 1; y ponemos al enemigo en estado “cayendo”. Si no, hacemos rebotar levemente al jugador [*].

[*] Esto siempre queda raro. ¿para dónde se rebota? Puedo probar con cambiar de sentido ambas velocidades, a ver.

Tenemos que tener dos estados:

- Idle: 
	si en_y > en_y1 -> en_y -= BLOCO_VY_IDLE; 
	si en_y < en_y1 -> en_y = en_y1;
	si collide (player, en), pry entre en_y -16 y en_y - 12 --> Estado = Falling
- Falling: 
	si en_y < 240 -> en_y += BLOCO_VY_FALL;
	si !collide (player, en) --> Estado = Idle.

Voy a pintar un bloque en el maltrecho set de gráficos (sustituyendo uno de los enemigos mierder de jet paco) y pruebow.

~~

Apunte rápido (a ver si modifico el colocador de una puta vez y no tengo que estar siempre recordando estas mierdas – este finde lo hago sí o sí, que si no hacer las fases va a ser un dolor) – tipo 6, gráfico 9 -> 0x69 = 105.

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