Sprites por Hardware – Tutorial 1

Este es un extracto del artículo originariamente publicado en mi web lacavernainformatica.com

Pues todo empezó con la salida del segundo Kickstarter del Zx Spectrum Next, y mi total imposibilidad de dejar pasar la ocasión por segunda vez. Si, sí, fui uno de los 5.236 patrocinadores que han contribuido un total de 1.847.106 £, al cambio actual en euros son unos 2.047.021,09€, para que este proyecto se pudiera realizar.

Así que este verano, con esa sonrisa que le queda a uno cuando sabe que va a poder tener en sus manos el cacharrillo, aunque sea dentro de un año, e impulsado por el Hype, me puse de nuevo a repasar las características y nuevos avances que se habían producido desde la primera tirada.

Una de las características que llamó fuertemente mi atención, como podéis esperar, fue el tema de la aceleración por hardware de los gráficos, pero aún lo hizo más cuando vi que el Basic que incluía poco tenía que ver con aquellas versiones de sus ancestros.

Los astros se habían alineado, de vacaciones y con tiempo libre para cacharrear… Primero lectura somera de la documentación y sobre todo ver si había algún emulador para que pudiera probar como funcionaba esto. Efectivamente, gracias a la fantástica comunidad que hay detrás del Spectrum, encontré el Cspect y poco tiempo tardé en tener frente a mis ojos la pantalla de arranque del Next.

Pantalla de arranque del Zx Spectrum Next corriendo bajo el emulador Cspect

 

Ya con todo listo, tan solo me quedaba pensar que podía hacer… Tras las primeras pruebas simples, parecía que todo funcionaba como la documentación indicaba, pero como tenía tiempo no lo iba a dejar ahí.

Así que tomé una decisión, hacer un videojuego utilizando las nuevas características y programando en Basic.

La idea del videojuego, surgió espontáneamente al ver jugar a mi hija pequeña con un pulpo de peluche y recordar un querido arcade llamado Depth Charge. Simplemente tenía que cambiar un poco el objetivo del juego, pero la base ya la tenía.

Así que varios días después de ir aprendiendo poco a poco los entresijos del nuevo lenguaje, los nuevos comandos y las peculiaridades de la máquina, traje a la vida a mi primer proyecto.

The Octopus Hunt, mi primer videojuego en Basic para el Zx Spectrum Next

El Octopus Hunt había nacido, y aunque se podían pulir muchas cosas, era un inicio.

Con el proyecto terminado y ya de vuelta a la dura realidad, pensé en compartir en mi canal de Youtube, a modo de tutorial, como había desarrollado el juego. Dicho y hecho, aquí podéis ver el resultado final y aprender como dar los primeros pasos para manejar Sprites y hacer vuestros propios videojuegos para este ordenador.

Aunque seguro que habéis visto el vídeo, vamos a resumir aquí los pasos iniciales que tenemos que seguir para poder hacer uso de nuestros Sprites en el Zx Spectrum Next.

Primero cargamos nuestro fichero de Sprites y le asignamos el tamaño adecuado. Ya sabéis 256K por cada Sprite que tengamos.

70 REM Cargamos los sprites del juego
80 REM 256 bytes por sprite
90 LOAD "octopus.spr" BANK 16,0,2560

Luego simplemente tenemos que definir que el Banco de memoria que acabamos de cargar es de tipo Sprite, ya veremos más adelante que podemos definir otros tipos de bancos de memoria.

Además será necesario limpiar los posibles Sprites en pantalla y marcarlos que sean visibles. Todo eso lo haremos con las siguientes sentencias.

250 SPRITE BANK 16
260 SPRITE CLEAR : SPRITE PRINT 1

Una vez hecho esto ya podremos definir los Sprite y usarlos con las sentencia de definición de Sprite.

SPRITE a,x,y,s,n

Donde:

  • a= Número que usamos para referenciar el Sprite en nuestro programa.
  • x= Posición en el eje X de nuestro Sprite.
  • y= Posición en el eje Y de nuestro Sprite.
  • s=Número de Sprite real, es decir, la posición del Sprite dentro de nuestro fichero de Sprites. Se empieza a numerar a partir del 0.
  • n=Indicamos si es visible o no. Para ello usamos 0 o 1.

Por ejemplo:

sprite 15,150,150,1,1

Hay más opciones que podemos definir dentro del comando de Sprite, así como más comandos útiles para el manejo de Sprites, pero no quiero complicar mucho el asunto en esta primera toma de contacto.

De todas formas, en el vídeo si hago una explicación de algunos otros detalles más avanzados que han sido necesarios para la creación del Videojuego.

Sin embargo, solo con estos comandos ya debes de ser capaz de mostrar un Sprite en la pantalla del Spectrum en la posición que le indiques.

¡Bien, ya eres un experto en programación de NextBasic!

¡Atento a la continuación de los próximos tutoriales!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *