004:trucos

Microhobby 4. Año I, del 26 de noviembre al 03 de diciembre de 1984

trucos_4.jpg

Mediante el comando BORDER seguido de un número entre 0 y 7 podemos conseguir distintos colores en el borde de la pantalla. Si cambiamos el color del borde lo suficientemente aprisa, el ojo apreciará varios colores a la vez.

La explicación técnica es la siguiente: puesto que el barrido completo de la pantalla de televisión tarda en producirse 1/50 de segundo, si hacemos cambiar el color del borde varias veces durante este período de tiempo, el color irá cambiando según avanza el barrido.

Pruebe el programa de la figura y cambie, si le parece, los colores. Puede aumentar el número de ellos o disminuirlo. A veces ocurre que las bandas de color se desplazan y otras se quedan fijas, depende del número de colores y del tiempo empleado por el microprocesador en cambiar de un color a otro. Entre las instrucciones de cambio de color no debe haber otras, ya que retardarían la secuencia y darían lugar a colores sucesivos pero no simultáneos.

Si los colores se desplazan verticalmente, pruebe a introducir PAUSE 1. Este retardo de 1/50 de segundo corresponde con un barrido de pantalla y es bastante probable que al introducirlo logre detener el aparente avance de las barras de color. Estos interesantes efectos puede añadirlos en sus programas dentro de bucles FOR-NEXT, o si lo hace con GO TO, como en el ejemplo, no olvide poner dentro del bucle una introducción tipo IF INKEY$ =“” THEN GO TO… con objeto de poder salir de él en cualquier momento.

10 PAPER 7: CLS
20 BORDER 1: BORDER 2: BORDER 4: BORDER 6: BORDER 0 : BORDER 5: BORDER 3: BORDER 1
30 IF INKEY$ <> "" THEN STOP
40 PAUSE 1
50 GO TO 15

Cuando terminamos de escribir la parte de código de nuestro programa que realiza la tarea prevista, por ejemplo un cálculo matemático, un tratamiento de cadenas, etc., nos encontramos con el problema de la presentación de los resultados en pantalla, de forma que queden lo más bonito y original posible.

Para llevar esto a cabo hay muchas soluciones; aquí sugerimos una que utiliza la sentencia PRINT para presentar texto subrayado en la pantalla y a la velocidad que queramos.

Véase el siguiente programa:

Todo el trabajo lo realiza la línea 10; hemos utilizado la función chr$ para mover la posición de print un espacio hacia atrás (chr$ 8), y para activar el «OVER 1» (los dos siguientes). El bucle de la línea 30 permite subrayar el texto carácter a carácter, y la línea 50 establece el retardo.

10 DEF FN  X$(A$) = A$(I) + CHR$ 8 + CHR$ 21 + CHR$ 1 + "_"
20 INPUT A$
30 FOR I=1 TO LEN A$
40 PRINT FN X$(A$);
50 PAUSE 100
60 NEXT I

En el capítulo 25 del manual del Spectrum se encuentra una descripción de la variable BORDCR, donde se nos explica que mediante ésta se pueden cambiar los colores del borde, así como la mitad inferior de la pantalla, (cuando hablamos de la mitad inferior nos estamos refiriendo a las líneas 23 y 24, es decir, las que utilizamos normalmente para introducir datos a través de INPUT). Esto, sin embargo, no queda muy claro en el manual.

Si queremos cambiar esta zona, podremos hacerlo introduciendo la línea POKE 23624,8 donde 8 será el valor correspondiente al color. Recordemos que el color se obtiene multiplicando 8 por mismo color del PAPER de las dos líneas inferiores.

Una forma de observar más detenidamente el efecto que se produce, sería cambiar el valor que introducimos tras el POKE probando todas las combinaciones posibles.

La zona de pantalla correspondiente a las líneas 23 y 24 cambia continuamente, tomando los valores asignados por la variable «i» que indica el tipo de color, tinta, brillo y flash. Si sustituimos la línea 30 del programa por la siguiente:

30 INPUT «PROBANDO BORDES»; A$

el borde y las dos líneas inferiores cambian continuamente de color, así como la tinta, ocurriendo, en algunas el valor del código correspondiente. En este caso sería 8 x 1, ya que se trata del color azul.

10 FOR i=1 TO 255
20 POKE 23624,i
30 INPUT i: PAUSE 10
50 POKE 23624,56

La primera vez que ejecutemos la introducción, veremos cómo las líneas 23 y 24 se han vuelto azules, mientras la tinta sigue siendo negra. Si pulsamos, a continuación, cualquier tecla, observaremos cómo el borde de la pantalla tiene ahora también el mismo color azul que las líneas anteriores. Esto ocurre porque, como recordaremos, la variable BORDCR asigna al borde el ocasiones, que al coincidir uno y otro el mensaje del INPUT no se verá.

La variable BORDCK puede ser utilizada en cualquier momento, consiguiendo mediante su uso efectos llenos de vistosidad en la presentación de nuestros programas.

  • 004/trucos.txt
  • Última modificación: d/m/Y H:i
  • por 127.0.0.1