mojontwins / MK1

MT Engine MK1 para ZX Spectrum (La Churrera)
GNU General Public License v2.0
65 stars 11 forks source link

#define PLAYER_BOUNCES y personajes que acaban empotrados en tiles behs 8 #23

Open TartessosGames opened 6 months ago

TartessosGames commented 6 months ago

Buenas. Encontré otro pequeño bug. Esta vez sucede cuando se activa #define PLAYER_BOUNCES y los Fanties. Al recibir un impacto de un Fanti, como coincida con que el personaje esté avanzando en la misma dirección que hacia donde va el Fanti, el sprite llega a atravesar los tiles con behs 8, quedando en algunas ocasiones encajonado, bloqueado, o yendo a parar a la pantalla adyacente. También puede ocurrir si el Fanti viene de la otra punta de la pantalla con velocidad y el personaje está quieto cerca de un tile con behs 8:

1

En esta prueba no está activado #define FULL_BOUNCE, por si acentua el problema, y los Fanties están con la configuración standart.

He conseguido "solucionar" el bug eliminando una parte del código en enengine.h.

2

queda así: 3

No sé si será la mejor manera, pero por lo menos en las situaciones donde lo estoy probado no me ha vuelto a ocurrir.

Cuando estaba desarrollando el anterior juego, recuerdo que acabé desactivando #define PLAYER_BOUNCES porque me ocurria eso mismo, no recuerdo si solo con los enemigos jartibles o también con los lineales, que en algunos casos terminaban empotrando al personaje dentro de tiles con behs 8 (era vista genital). No lo he vuelto a comprobar, ni se me ha dado el caso con los lineales en el nuevo proyecto, y los jartibles no los estoy utilizando, pero es probable que ocurra también.

TartessosGames commented 6 months ago

Eliminando la suma el rebote se atenua bastante. En lugar de eliminarla, le sumo la mitad: + ( p_vx = en_an_vx [enit] / 2) ; y he conseguido que el rebote sea menos atenuado sin llegar a que el sprite atraviese los tiles behs 8 ni los tiles plataformas behs 4, que con los empujones también los atravesaban. Aunque en el caso de los behs 4 el efecto de traspasarlos con los empujones de los fanties quedaba bien.

4