Sprites con caracteres en BASIC de Amstrad CPC

Este artículo es el número 1 de 3 de la serie Sprites con caracteres para Amstrad CPC
The Boxer Master
The Boxer Master

Desde 1984 hasta principios de los 90 se desarrollaron muchos juegos en BASIC para Amstrad CPC. La mayoría de estos juegos utilizaban caracteres como sprites, ya que era una de las formas más sencillas y rápidas. Sin embargo, no todos utilizaron el  “Modo Transparente”: un modo que permite componer varios caracteres y colores en una misma posición de pantalla.

Este artículo es el primero de una pequeña serie en la que explicaremos como utilizar caracteres para dibujar sprites en Amstrad CPC, y cómo mejorar y acelerar el proceso de dibujado para exprimir al máximo las capacidades del Locomotive BASIC de los Amstrad CPC.

Dibujando Sprites con caracteres

En Locomotive BASIC, la forma más sencilla y rápida de tener sprites para nuestros juegos es utilizar los 256 caracteres disponibles en la consola de texto. Así, dibujar nuestros sprites en pantalla es tan sencillo como utilizar la orden PRINT:

10 PRINT "*":        ' IMPRIMIR EL CARACTER *
20 PRINT CHR$(233):  ' IMPRIMIR EL CARACTER 233 (de los 256 disponibles)

En el manual del usuario de Amstrad CPC(página 168) tenemos una tabla con los 256 caracteres disponibles para poder elegir los que queramos. Así, en tan sólo una línea, podemos dibujar nuestro caracter/sprite rápidamente. Ahora sólo nos falta dibujarlo en la posición que queramos de la pantalla usando LOCATE:

10 LOCATE 10,20:     ' Posicionar el cursor de texto en la fila 10, columna 20
20 PRINT CHR$(233):  ' IMPRIMIR EL CARACTER 233

Y ya, rizando el rizo, podemos utilizar las instrucciones PEN y PAPER para elegir los colores de texto y de fondo con los que queremos dibujar:

10 LOCATE 10,20:     ' Posicionar el cursor de texto en la fila 10, columna 20
20 PEN 2:PAPER 3:    ' Elegir el color de texto numero 2 y el color de fondo 3
30 PRINT CHR$(233):  ' IMPRIMIR EL CARACTER 233

La limitación de esta técnica es que sólo podemos dibujar un único carácter en cada posición de la pantalla de texto. Si intentamos dibujar un segundo carácter en la posición 10,20, este segundo carácter sustituirá por completo al primero. Por este motivo, la mayoría de los juegos hechos en BASIC para Amstrad son muy simples a nivel gráfico.

Sin embargo, el BASIC del Amstrad cuenta con un “Modo Transparente” que permite dibujar un carácter sin borrar lo que hubiera antes. Este “Modo Transparente” permite mezclar varios caracteres en una misma posición, lo que podemos aprovechar para dibujar sprites con varios colores y más detalle. El siguiente programa muestra cómo hacerlo:

10 LOCATE 10,20:           ' Posicionar el cursor de texto en la fila 10, columna 20
20 PEN 2:                  ' Elegir el color de texto número 2
30 PRINT CHR$(233):        ' Imprimir el carácter 233
40 PRINT CHR$(22)+CHR$(1): ' Activar el modo transparente
50 LOCATE 10,20:           ' Volver a posicionar el cursor en la posición 10,20
60 PEN 3:                  ' Elegir el color de texto número 3
70 PRINT CHR$(232):        ' Imprimir el carácter 232, sin borrar el 233

Este código tiene una curiosidad importante en la línea 40. La línea parece decirle al Amstrad que dibuje 2 caracteres en pantalla. Sin embargo, nada se dibuja en pantalla: lo que sucede es que se activa el modo transparente. A partir de ese momento, los siguientes caracteres que dibujemos no borrarán lo que hubiera antes en pantalla. Esto sucede así porque los caracteres del 0 al 31 no funcionan como caracteres normales, sino que tienen funciones asociadas. Se llaman “caracteres especiales” y nos serán muy útiles para mejorar nuestra forma de dibujar en pantalla.

Con el programa anterior logramos dibujar los caracteres 232 y 233 superpuestos en la posición 10,20 de la pantalla, uno en color 2 y otro en color 3. Esto nos permite componer un dibujo con varios colores en una misma casilla de la pantalla de texto. Así podemos crear gráficos con más detalle y colorido, sin dejar de hacerlo con la simplicidad del BASIC, los caracteres y la pantalla de texto.

En el próximo artículo revisaremos esta técnica y estudiaremos cómo mejorarla, simplificarla y hasta acelerarla.

Recursos y enlaces
Manuales del Amstrad CPC

Artículos en esta serieSprites con caracteres en BASIC de Amstrad CPC (II) >>

4 comentarios en “Sprites con caracteres en BASIC de Amstrad CPC

  1. Buena introducción al mundo de los caracteres del CPC. La gente seguro que se entretiene haciendo pruebas con lo que ya trae el BASIC por defecto. Para el próximo, el SYMBOL y ya será todo un derroche de creatividad 😉

Deja un comentario