mojontwins / MK1

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

Enemigos ORTHOSHOOTERS siempre disparan hacia arriba en modo vista lateral #17

Open TartessosGames opened 9 months ago

TartessosGames commented 9 months ago

Esto ocurre independientemente de los valores asignados en Ponedor: 05, 45,85, o C5. Lo he probado en vista lateral + modo 128k + COMPRESSED_LEVELS. Imagino que el problema lo generará el modo lateral.

mojontwins commented 9 months ago

La verdad es que esto se añadió para Sgt. Helmet que es vista cenital, así que probado no está. Voy a echarle un vistazo.

mojontwins commented 9 months ago

El problema está en que los orthoshooters utilizan su entrada en el array en_an_state para almacenar la dirección en la que disparan, pero en modo 128K este array también se emplea para el "estado" de los enemigos (por ejempo "muriendo"), lo que sobrescribe la dirección.

Para solucionarlo tengo que recodificar estos valores para que puedan coexistir. Intentaré hacerlo hoy mismo.

mojontwins commented 9 months ago

He hecho estos cambios que deberían hacer compatibles los dos usos del array, pero me es imposible probarlo. ¿Podrías comprobarlo en tu proyecto?

https://github.com/mojontwins/MK1/commit/e8d8aed61275c6d3d694581931f66be7911daeed

TartessosGames commented 9 months ago

Ok, entonces el problema venía del modo 128k. En un rato me pongo y te digo. En mi proyecto lo he "arreglado" creando 4 simple_coco_shoot ();:

simple_coco_shootUP (); simple_coco_shootDOWN (); Etc.

Así, además, consigo asignar disparo a cualquier tipo de enemigo y que puedan alternar entre los simple_coco_shoot () para cambiar la dirección de disparo según donde esté el personaje.

TartessosGames commented 9 months ago

Acabo de probar los cambios y los orthoshooters continuan disparando hacia arriba independientemente de los valores 05, 45,85, o C5.