Asteroids: configuración y posicionamiento de la nave

Programación retro del Commodore 64

  • Programación retro del Commodore 64
  • “Programación Retro del Commodore 64” es un blog sobre el hardware, el sistema operativo, y la programación del Commodore 64. Y más específicamente sobre programación en ensamblador. Pretende ser un blog con información de calidad, y referencia en español de la programación retro de esta maravillosa máquina.
    • Mi blog
« Publicado el: 31/08/2019 »

Una vez diseñada la nave con sus ocho “frames”, ya podemos configurar el sprite y pintarlo en pantalla.

Por claridad, todo el código relativo a la nave o el jugador vamos a ubicarlo en un fichero independiente llamado “Jugador.asm”. Haremos lo mismo con los asteroides, los disparos, etc.

Pues bien, como ya hemos dicho, todos los elementos del juego deben tener:

  • Una inicialización.
  • Y una actualización.

En el caso de la nave o jugador, la inicialización consistirá precisamente en la configuración y posicionamiento inicial del sprite, y la actualización consistirá en el movimiento (y más adelante los disparos y las colisiones).

Así pues, igual que antes inicializábamos la pantalla, ahora inicializamos el jugador. La llamada a la inicialización del jugador está justo después de inicializar la pantalla:

Asteroids - Pantalla de juego - Llamada

Y la inicialización consiste en:

Todo esto puede verse aquí:

Asteroids - Inicialización nave

Todo lo hacemos con las rutinas de la librería “LibSprites”. Aprovecho para adelantar que algunas rutinas de esta librería, igual que ya ocurrió con la rutina “configuraColores” de “LibChars” (que no admitía el color del borde), adolecían de algunas limitaciones.

Por ejemplo, la posición X de los sprites sólo podía oscilar entre 0 y 255 (un byte), y sólo era posible activar la expansión horizontal/vertical, pero no era posible desactivarla una vez activa. Por todo ello, ha sido necesario mejorar la librería. Pero lo iremos viendo sobre la marcha.

Bueno, pues con este código ya tenemos la pantalla en negro (esto lo conseguimos en una entrada anterior) y el sprite en pantalla:

Asteroids - Inicialización nave 2

Lo siguiente será el movimiento.

 


Código del proyecto: Asteroids01