016:software

Microhobby 16. Año II, del 19 al 25 de febrero de 1985

Miguel Sepulveda

A la hora de plantearse la realización de un juego, siempre surge la necesidad de «mover» por la pantalla algún objeto o personaje. Si se hace en BASIC, el desplazamiento se produce «a saltos» y con bastante lentitud. Si se utiliza el «Código Máquina» la cosa cambia. En esta serie vamos a explicar cómo conseguirlo.

Desde la aparición de los primeros ordenadores que estaban equipados con válvulas, y que tenían un alto consumo y una velocidad de procesamiento muy lenta, la electrónica en general y, la digital en particular ha experimentado un gran avance con los circuitos integrados, lo cual ha posibilitado la aparición de los microprocesadores de bajo consumo y de procesamiento muy rápido.

Con la llegada de estos microprocesadores, empezaron a surgir los Ordenadores Personales, con características de construcción y funcionamiento distinto de los antiguos y grandes ordenadores, disponiendo actualmente de gráficos en color y sonido.

La serie de artículos que ofrecemos le ayudarán a crear con más facilidad sus propios juegos.

Este primer artículo irá dedicado a la creación de las figuras y pantallas que usará el juego.

Los aficionados que hacen juegos en BASIC, tienen que crear sus figuras en los caracteres Gráficos Definidos por el Usuario, y con 21 caracteres, la cantidad de figuras que se pueden crear es muy limitada. Ahora bien si esas figuras se crean en memoria, el límite vendrá impuesto por la cantidad de memoria ocupada por el programa que van a usarlas.

Una ventaja de crear las figuras en memoria es que la dimensión en octetos es real, mientras que en los caracteres Gráficos Definidos por el Usuario, hay que usar caracteres completos, es decir, 8 octetos, aunque sólo se use un octeto de los 8.

Otra ventaja es que con GDU, el máximo de octetos de que dispones para crear una figura es de 168, mientras que este programa admite que puedas crear una figura de 2048 octetos, o sea 2 K octetos.

Antes de explicar cómo se crea una figura, vamos a ver brevemente qué se entiende por SCAN. La pantalla en baja resolución tiene 22 líneas y 32 columnas y, en alta resolución tiene 176 líneas de 32 octetos. Un scan sería una línea en alta resolución, pero de longitud variable, es decir, que una figura podría estar compuesta de un número variable de scan, y a su vez, estos scan podrían tener longitud variable. Por ejemplo, la pantalla estaría compuesta de 176 scan de 32 octetos y un carácter serían 8 scan de un octeto. De la misma forma, 3 caracteres seguidos serían 8 scan de 3 octetos.

Una vez visto el concepto de scan, vamos a ver cómo funcionaría el programa. El primer dato a introducir sería la posición a partir de la cual se va a cargar los datos de la figura que vamos a crear. Estos datos podrán ubicarse entre las posiciones 28000 y 64000 de memoria, quedándose el programa en bucle hasta que estos datos sean correctos.

El siguiente dato a introducir, es la longitud en octetos del scan. Necesariamente, esta longitud debe estar comprendida entre 1 y 32. Otro dato necesario son los scan que compondrán la figura y que serán, 1 como mínimo y 64 como máximo.

A partir de este momento empezará la creación de la figura. Esta creación se realizará scan a scan.

En pantalla aparecerá el número de scan a codificar y, a continuación, un dibujo representativo del scan. Este scan se representará en la pantalla como una sucesión de cuadros, cada uno de los cuales representa un bit de cada octeto del scan. En cada línea de la pantalla tienen solamente cabida 4 octetos y, por lo tanto, serán a veces necesarias varias líneas para completar el scan. Por ejemplo, si la longitud del scan es de 10 octetos se crearán 2 líneas enteras y 2 octetos. Cada columna de 8 cuadrados que componen un octeto, tendrá color diferente de la siguiente para diferenciar un octeto de otro.

Cuando el scan está dibujado, en el primer cuadrado del primer octeto aparece el puntero, que es de color blanco brillante. Para mover el puntero se usan los cursores que están en las teclas 5 y 8, el movimiento del puntero corresponderá a la tecla pulsada.

Para activar un bit (pixel en pantalla) se pulsa la tecla 0 que colorea ese cuadro con negro y pone el puntero en el siguiente cuadro.

Para desactivar un bit que se haya activado por error, hay que poner el puntero en ese bit y pulsar el 1, entonces, el cuadro volverá a su color original y el puntero retrocederá al cuadro anterior.

Si cualquiera de las 4 teclas se mantiene pulsada, el puntero se moverá automáticamente en la dirección deseada, hala que llegue a cualquiera de los 2 extremos del scan (principio o fin del scan), en cuyo caso queda fijo.

Cuando se haya creado el scan correctamente, se pulsa ENTER y el programa introduce el valor del scan, octeto a octeto, en memoria y lo dibujará en la parte baja de la pantalla.

A continuación, se repetiría el mismo proceso para el scan siguiente, y así, hasta completar el número de scan que compone la figura.

En la parte baja de la pantalla aparecerá la figura que se ha creado y todos los datos de ella en memoria. Seguidamente deja la información de la dirección en memoria donde está el número de octetos que compone la figura más los octetos bajo y alto de la dirección de la figura en la memoria, para usarlos luego en las rutinas de movimiento de las figuras.

Luego, pregunta si se quiere salvar los datos de la figura en cinta de cassette y si se quiere seguir creando más figuras.

Estas figuras luego, se pueden cargar en la dirección de memoria que se quiera.

Con este programa, también se pueden crear pantallas generando 3 figuras consecutivas en memoria.

Esto se realiza de la siguiente forma: La dirección de memoria de la primera figura podría ser la 32768, el número de octetos por scan de 32, y el número de scan 64, en esta primera figura se crearían las 8 primeras líneas de la pantalla, y se dejaría en memoria sin salvar en cinta.

En la segunda figura, se crearán las 8 líneas siguientes de la pantalla y la dirección de memoria sería la 34816, siendo el número de octetos por scan y el número de scan los mismos que en el caso anterior. También se dejarían en memoria sin salvar en cinta.

La tercera y última figura, sería la que crea las 8 últimas líneas de la pantalla, la dirección de memoria de la figura será la 36864, y el número de octetos y de scan los mismos que en casos anteriores. Se han creado, por tanto, 24 líneas de 32 octetos cada una, que componen una pantalla. Cuando se haya creado la última figura y se pregunte si se quiere salvar en cinta, se contestará que sí, y a la pregunta de que si se quiere crear más figuras, se contestará que no. En este momento, se sale del programa. Entonces, manualmente se le da el comando:

SAVE «nombre» CODE 32768, 6144

con lo cual la pantalla se salva en cinta.

  • 016/software.txt
  • Última modificación: d/m/Y H:i
  • por miguel