APPLICATIONSCREATION GRAPHIQUE ★ CARAGPERES EN TECNICOLOR ★

RSX Multicolor (Amstrad User)Applications Creation Graphique
★ Ce texte vous est présenté dans sa version originale ★ 
 ★ This text is presented to you in its original version ★ 
 ★ Este texto se presenta en su versión original ★ 
 ★ Dieser Text wird in seiner Originalfassung präsentiert ★ 

¿Cómo conseguir caracteres multicolor en la pantalla, tanto en coordenadas LOCATE como en coordenadas PIXEL? Hasta ahora tenía que hacerlo en código máquina, lo cual resulta un tanto excesivo si el 99 por 100 del programa funciona suficientemente bien y con la rapidez necesaria en BASIC.

Si no, tendría que construir varios caracteres que, superpuestos, formaran las diferentes partes del caracter deseado e imprimirlos, con plumas diferentes, en modo transparente, uno encima de otro. Por ejemplo, si quiere un hombre con cuerpo azul, pelo rojo y cara blanca con un ojo, necesitaría un carácter para el cuerpo, otro para el pelo, y otro para la cara con un agujero para mostrar el color del fondo a través del ojo; ¡y todo esto trabajando en modo 1! Si fuera en modo O podría necesitar imprimir hasta 17 caracteres diferentes, lo cual resulta terriblemente lento.

Así pues, para aquellos que quieran un método fácil y rápido de imprimir caracteres multicolor (que, efectivamente, son sprites muy pequeños) en la pantalla sin recurrir a «montones» de código máquina, hemos diseñado dos sencillos RSXs. |MPUT para imprimir cada carácter, o una cadena de caracteres multicolor en la última posición de impresión de texto, y |GPUT para imprimir tanto un carácter como una cadena de ellos en la posición del cursor de gráficos.

Para utilizar cualquiera de los dos, introduzca simplemente el comando seguido de una serie de números, separados por comas. Por ejemplo:

10 LOCATE 10, 10: |MPUT,0,1,2,1
20 MOVE 100,100: |GPUT,4
30 MOVE 200,40:|GPUT,5,6
40 LOCATE 20,3: |MPUT,7

Los números escritos tras los comandos no se refieren al juego de caracteres normal, sino a otro que será diseñado separadamente y sobre el cual hablaremos más adelante.

Como puede ver, ambas rutinas son sencillas de usar; sin embargo, tienen algunas limitaciones.

El comando |MPUT no sitúa el cursor de texto detrás del último carácter que imprime, así que si desea mezclar caracteres multicolor y normales debe utilizar un comando LOCATE detrás de cada |MPUT. El comando |GPUT sitúa el caracter en la posición de byte más cercana en la pantalla, lo cual no es siempre la posición de pixel. Esto significa que puede moverse arriba y abajo de la pantalla con bastante facilidad pero sólo se moverá de 8 en 8 bits de pantalla a la derecha o izquierda. Esto limita el movimiento horizontal a medio carácter en modo 1 (cuatro pixels) y un cuarto de carácter en modo 0 (dos pixels). En modo 0 esto no constituye una limitación excesiva pero si piensa que el movimiento sorá muy desigual en modo 1, pruebe entonces a diseñar dos o más caracteres con la forma que quiere ligeramente modificada en cada uno, de modo que, imprimiéndolos uno detrás de otro consiga un movimiento suave. Esta es la técnica utilizada en el programa de demostración.

PAGUE EL PRECIO

Hay que pagar un precio a cambio de toda esta facilidad de uso: se necesita más memoria para cada carácter a imprimir. En lugar de los 8 bytes habituales, un carácter multicolor en modo 1 necesita 16 bytes, y uno en modo 0, 32 bytes. Pero esto no es tan malo si considera que habría tenido que utilizar hasta tres caracteres en modo 1 o 15 en modo 0 para conseguir el mismo resultado, y además mucho más lento. Un carácter en modo 2 sigue utilizando sólo 8 byes y la rutina funciona de hecho con el modo 2, aunque hay un pequeño problema para comprobarlo, ya que no puede tener más que una tinta, y debería utilizar en su lugar el método normal del BASIC.

UTILIZANDO EL PROGRAMA

Primero, teclee el programa 1, sálvelo y ejecútelo. Si ha cometido algún error en los DATAS, el programa le avisará en qué línea se encuentra. Cuando el programa funciona sin errores, sálvelo y reinicialice la máquina apagándola y encendiéndola de nuevo. Ahora teclee el programa 2 y sálvelo. Este le permitirá diseñar sus caracteres en cualquier modo que desee y salvarlos en cinta (o disco).

El programa diseñador es muy corto y simple. Después de decirle el modo que deseamos, entra en él. Para desplazar el cursor por el carácter, utilice las teclas de cursor, y use la tecla copy para poner y quitar la pluma. Para cambiar la pluma pulse la tecla [P] e introduzca el nuevo número de pluma. Para almacenar el carácter en memoria pulse la tecla [S] y déle un número. Puede tener todos los que quiera mientras recuerde cuánta memoria gasta cada uno. Para reeditar un carácter introducido antes en memoria, pulse [R] e introduzca su número. Cuando haya terminado de diseñar caracteres pulse [Q] y, después de preguntarle si está seguro, le preguntará cuántos salvar. Recuerde, el número de Sprites comienza en 0, de modo que de 0 a 7 equivale a 8 Sprites.

Ahora, para ver el fruto de su trabajo, debe reiniciar la máquina y ejecutar este programa.

10 INPUT "MODO";MM:MD = 1:IF MM < > 1 THEN MD = 2
20 INPUT "CUANTOS SPRITES";S:MODE MM
30 S = S*16*MD
40 H = HIMEM - 1
50 MEMORY (H-S)
60 H = HIMEM + 1
70 LOAD "SPRITES",H

que cargará sus Sprites.

Ahora puede cargar y ejecutar el programa 1 de nuevo. Este moverá HIMEM y se pondrá a sí mismo por encima y se activará. Ya puede utilizar los RSXs y ver sus Sprites aparecer en la pantalla. No olvide que el comando IM-PUT no moverá la posición del cursor, así que si introduce:

|MPUT,0,0,0

el mensaje «Ready» sobreescribirá sus Sprites, así que añada PRINT al final del comando. Y recuerde situar el cursor de gráficos en la pantalla con el comando MOVE para poder ver los caracteres, como:

MOVE 100,100:|MPUT,0

Bien, ahora debería tener las rutinas funcionando. Hay tres métodos para imprimir caracteres. Puede escribir los caracteres y borrarlos con |MPUT o |GPUT con un carácter blanco sobre ellos. Debe reservar uno de sus caracteres para hacer esto. También puede utilizar el modo XOR para escribir los caracteres en la pantalla, con lo cual se combinarán con lo que tenga en la pantalla, en la misma forma que en juegos como «Manic Miner» y «Sorcery». Puede borrarlo reimprimiendo el mismo carácter. El tercer método sólo imprimirá las partes del carácter que tengan alguna tinta. No imprime bytes cero. Supongamos, por ejemplo, que sólo desea un carácter tamaño «modo 1» pero en modo 0. Si sólo diseña medio carácter, digamos la mitad izquierda, y deja el resto en blanco, cuando lo imprima junto a otro obtendrá normalmente el extraño efecto de borrar lo que había en la pantalla sin que aparezca nada en su lugar. Este método de imprimir suprime este efecto y permite imprimir caracteres pequeños sin un «halo» a su alrededor. Esto es casi igual al modo transparente normal. Esto significa que debe usarse el primer método de impresión si quiere borrar algo con un carácter en blanco; de otro modo no ocurrirá nada.

Para seleccionar los métodos, simplemente ejecute POKE 5,n donde n es:

2 a 255 para impresión normal.
1 para impresión XOR.
0 para impresión transparente.

Para ver a la rutina en acción teclee la primera parte del pequeño programa de demostración que prepara los caracteres. A continuación cargue y ejecute el programa 1 y después cargue y ejecute la segunda parte del programa de demostración para ver un balón moviéndose suavemente a través de la pantalla.

Como punto final, el programa funcionará en cualquier lugar de la memoria, así que si ha diseñado un juego de caracteres distinto con el comando SYMBOL AFTER hágalo antes de cargar y ejecutar los caracteres multicolores y el programa 1 y todo irá bien.

Amstrad User #5

★ PUBLISHER: Amstrad User
★ YEAR: 1986
★ CONFIG: 64K + AMSDOS
★ LANGUAGE:
★ LiCENCE: LISTING
★ AUTHOR(S): ???
 

★ AMSTRAD CPC ★ DOWNLOAD ★

Type-in/Listing:
» RSX-Multicolor    (Amstrad  User)    SPANISH    LISTINGDATE: 2022-03-05
DL: 135
TYPE: PDF
SiZE: 2442Ko
NOTE: 7 pages/PDFlib v1.6

★ AMSTRAD CPC ★ A voir aussi sur CPCrulez , les sujets suivants pourront vous intéresser...

Lien(s):
» Applications » Multiface 2 Utilities
» Applications » Multiscreen (Happy Computer)
» Applications » Multitext CPC
» Applications » Multiformateur pour tous Lecteurs
» Applications » Game Loader for use with the Multiface 2
» Applications » Multi Format Utility
Je participe au site:
» Vous avez des infos personnel, des fichiers que nous ne possédons pas concernent ce programme ?
» Vous avez remarqué une erreur dans ce texte ?
» Aidez-nous à améliorer cette page : en nous contactant via le forum ou par email.

CPCrulez[Content Management System] v8.7-desktop/c
Page créée en 070 millisecondes et consultée 578 fois

L'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent  du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko.