Estoy tratando de descubrir los conceptos básicos del desarrollo del juego C64 más allá de BASIC, y podría usar algunos consejos sobre algo muy básico, pero importante: ¿qué es realmente todo eso en la pantalla y cómo dibujarlo?
Echa un vistazo a Katakis / Denaris :
Hay al menos 9 cosas diferentes en la pantalla:
- La barra de puntuación, con diferentes tipos de letra.
- El barco en sí
- Un satélite conectado a la nave, desmontable
- Proyectiles de armas secundarias
- Proyectiles de armas primarias
- Objetos en movimiento (pueden ser barcos enemigos)
- La barra de estado, con una imagen de la nave, el número de vidas y tres secciones que puede llenar
- La barra de carga del arma principal, puede llenarse hasta el final
- Un campo estelar desplazable en el fondo
- (sin numerar en la pantalla) Objetos sólidos como rocas o paredes de metal que forman parte del fondo
El C64 solo admite 8 sprites por línea de exploración horizontal, así que no creo que todo en el medio de la pantalla pueda ser un sprite. Supongo que cualquier cosa que requiera una colisión sería un sprite (ya que puedo obtener la detección de colisión de hardware con sprites), pero incluso entonces alcancé rápidamente el límite de 8 sprites. Además, mis armas pueden disparar mucho más de un proyectil: mi nave, el satélite y 6 balas ya serían 8 sprites seguidos (miren unos 50 segundos en el video).
Además, ¿qué modo gráfico usaría un juego como este? El Manual de programación enumera el modo de mapa de bits que esencialmente modifica la memoria de la pantalla directamente. ¿Es este el modo en el que normalmente debería estar trabajando? ¿Cómo compondría todos los elementos que no son sprites para que aparezcan en la pantalla?
Muchas de las cosas en la barra de puntuación y estado son estáticas ("Área: 01" o el "marco"), así que supongo que las rellenaré una vez cuando comience el nivel. Las cosas que deben actualizarse (el puntaje, las barras de carga en la parte inferior) se actualizarían llenando la memoria de la pantalla con negro y luego dibujando el nuevo puntaje en cada cuadro.
¿O tengo que dibujar la pantalla completa en cada cuadro?