APPLICATIONSDIVERS ★ FILMATION (AMSTRAD ESPECIAL) ★

Filmation (Amstrad Especial)Applications Divers
★ 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 ★ 

Crear un juego en tres dimensiones es una ilusión que cualquiera puede poner en práctica siguiendo estas explicaciones sobre la Técnica Filmation.

Hare algún tiempo apareció en el mercado un programa para ordenador, en concreto para Spectrum, aunque más tarde se pasó a otros sistemas, entre ellos a Alustrad, que revolucionó en cierta forma el mundo de la programación de juegos, por supuesto nos estamos refiriendo al programa Knight Lore.

Estamos seguros de que cualquier aficionado al mundo de los juegos ha oído hablar en más de una ocasión de dicho programa, ya que representó en su día una gran innovación en el mundo de los videojuegos.

Lo primero que sorprendió, en su momento, de dicho programa, fue la presentación tridimensional del escenario donde transcurre la acción, que luego ha sirio trasladado a centenares de programas.

A este método de programación se le bautizó con el nombre de Técnica Filmation, debido a la gran perfección de sus movimientos y a la posibilidad de que cada personaje que interviene en el juego pueda aparecer en planos diferentes, dentro de una misma pantalla de juego.

Por todos estos motivos vamos hoy a ¡mentar explicar cómo funciona la técnica mencionada anteriormente, que a partir de ahora podremos utilizar en nuestros propios programas, incluso desde Basic, gracias a Ja rutina que hemos preparado, la cual incluye dos nuevos comandos RSX que nos permitirán mover gráficos en pantalla con el método Filmation.

La primera particularidad que presenta esta técnica de impresión en pantalla, es referente a la forma en que se deben confeccionar los gráficos.

Cada uno de los personajes u objetos a los que se desee aplicar este tipo de impresión, deberá poseer, además de su imagen, una mascara de dicha imagen.

Cuando nosotros realizamos un gráfico pata utilizarlo posteriormente en nuestro programa, realizamos un dibujo del personaje que deseamos que aparezca en pantalla. Ahora bien, la utilización de la técnica Filmation requiere una imagen en inverso o en negativo de dicho dibujo. Esto último es lo que se denomina máscara.

Veamos , pues, cuáles serían los pasos a seguir cuando nos pongamos a crear nuestro propio gradeo. En primer lugar, crearíamos la imagen del objeto que deseamos se imprima en pantalla y la almacenaríamos una vez acabada.

A continuación, tomando esa misma imagen o dibujo como referencia, deberemos rellenar todos los puntos vacíos que rodean dicha imagen, dejando un pixel en blanco entre el dibujo original y su relleno.

Una vez realizada esta operación, deberemos borrar el dibujo original, con lo cual nos quedará su imagen inversa, a lo cual se denomina máscara.

Por último, la almacenaremos a continuación del dibujo origianl.

Debemos advertir que la máscara se realiza siempre con tinta 3, independientemente del color que posea la imagen original.

Tenemos en este momento preparado nuestro gráfico para ser imprimido en pantalla con la rutina que utiliza la técnica Filmation (ver dibujo 1).

Veamos ahora los pasos que deben ser realizados por la rutina de impresión, para conseguir que el gráfico que se desplaza por la pantalla, lo haga de una forma suave y sin parpadeos.

Las rutinas de impresión normales dan movimiento a los gráficos, imprimiéndolos en una posición de pantalla. Seguidamente se borra este último colocando en su lugar lo que había anteriormente en pantalla y se imprime es una posición contigua, con lo cual se da la sensación de movimiento.

Esto se consigue realizando las operaciones de impresión y borrado en el momento en que se produce el barrido de pantalla, por lo cual nuestros ojos no son capaces de observar dichas operaciones.

Ahora bien, esto se puede realizar con bloques gráficos relativamente pequeños, ya que, en el momento en que nuestro gráfico sea lo suficientemente grande, las operaciones de impresión y borrado superarán el tiempo en que tarda en producirse el barrido de pantalla, con lo cual aparecerá ese molesto parpadeo.

Por tanto, lo que se pretende, es intentar rebajar el tiempo de las operaciones de impresión y borrado. Se puede conseguir imprimiendo y borrando al mismo tiempo, con lo que nos quedamos con un tiempo de ejecución igual a la mitad del utilizado con el método anterior.

Vamos a ver, pues, qué pasos deberemos seguir para conseguir de una sola vez la impresión y el borrado del gráfico, reponiendo al mismo tiempo lo que había anteriormente en pantalla.

Para ello, deberemos preparar un espacio de trabajo en memoria en el cual colocaremos el trozo de pantalla donde se debe imprimir la máscara y el gráfico propiamente dicho, y otro espacio en el cual almacenaremos el trozo de pantalla que debe ser repuesto una vez el gráfico haya cambiado de posición.

Una vez preparados estos buffrs de trabajo, leeremos la porción de pantalla donde se va a imprimir el gráfico y la traspasaremos a dicho buffer. Después colocaremos allí mismo la máscara del gráfico; mediante operaciones AND, con lo cual únicamente nos quedará la parle del trozo de pantalla donde el gráfico imprimirá, al mismo tiempo almacenaremos el contenido del buffer donde se va a colocar el gráfico, en otro espacio do memoria, para luego reponerlo.

Seguidamente colocaremos en ese mismo buffer el gráfico original, mediante operaciones GR, con lo que conseguiremos una copia de lo que debe aparecer en pantalla.

Ahora únicamente nos queda imprimirlo en pantalla con la rutina correspondiente, que será una rutina de impresión normal, la cual traspasará dicho buffer de trabajo a la pantalla.

La longitud del buffer de pantalla, deberá sella misma que la del gráfico que se desee imprimir, mientras que la dimensión del buffer de trabajo deberá ser la misma que la del gráfico, aumentando en dos la altura y la anchura (ver dibujo 2).

Veamos a continuación cuáles son los nuevos comandos RSX que nos permitirán la utilización desde Basic: de la técnica Filmation.

Como se ha comentado anteriormente, esta técnica se basa en la operación de impresión y borrado simultáneo del gráfico a imprimir; por lauto, los desplazamientos que se produzcan no pueden ser en ningún momento bruscos, es decir saltos de más de un carácter en cualquier sentido , ya que la rutina quedaría sin efecto al no reponer el trozo de pantalla en el que se encontraba el gráfico anteriormente.

En primer lugar tenernos el comando que nos permitirá inicializar la impresión de un gráfico,

|ON,A,B,DM,DG,X,Y donde cada uno de los parámetros corresponde:

  • A ..............Alto del gráfico
  • B ..............Ancho del gráfico
  • DM ..........Dirección de la máscara
  • DG ..........Dirección del gráfico
  • X ............Coordenada vertical
  • Y ..............Coordenada horizontal

El segundo nuevo tomando, que nos permitirá imprimir nuestro gráfico en pantalla es:

|SPRITE,X,V

donde «X» e «Y» indicarán las coordenadas vertical y horizontal, respectivamente.

Para dar una idea del funcionamiento de nuestra rutina, hemos prepararlo un programa demostración, en el cual se podrá observar tanto el funcionamiento de los nuevos comandos, así como el movimiento que se obtiene con la utilización de la técnica filmation.

Este programa de demostración utiliza un gráfico con su máscara, que deberán encontrarse en la dirección de memoria 20000.

Para cargar este gráfico, deberemos copiar el programa Basic generador del mismo y de su máscara y ejecutarlo, salvándolo a continuación en disco o cinta, teniendo en cuenta que cuando se desee utilizar el programa de demostración deberemos cargarlo en la dirección de memoria indicada antes.

Esta figura la pondremos en disco o cinta de la siguiente forma:

SAVE"BOLA", B, 20000,288

Para poder ejecutar la rutina, deberemos en primer lugar teclear el programa cargador Basic, y ejecutarlo. En caso de que aparezca algún error, se deberán revisar las líneas DATA.

Una vez ejecutado sin errores, podremos salvarlo en disco o cinta de la siguiente forma:

SAVE" FILMA", B,&8000,&22F

Cuando se desee utilizar, deberemos cargarlo en memoria a partir de la dirección &8000, haciendo una llamada a dicha dirección para inicializar los nuevos comandos RSX.

AMSTRAD ESPECIAL

★ PUBLISHER: AMSTRAD ESPECIAL
★ YEAR: 198X
★ CONFIG: 64K + AMSDOS
★ LANGUAGE:
★ LiCENCE: LISTING
★ AUTHOR: Alberto Suñer
 

★ AMSTRAD CPC ★ DOWNLOAD ★

Type-in/Listing:
» Filmation    LISTINGDATE: 2014-04-29
DL: 201
TYPE: PDF
SiZE: 640Ko
NOTE: 5 pages/PDFlib v1.6

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

Lien(s):
» Applications » Sprite Editor (The Amstrad User)
» Applications » Ecritrav
» Applications » Shape and Sound
» Applications » Compsoft
» Applications » Overscan Utility System
» Applications » Un generateur de graphiques pour Amstrad
Je participe au site:
» Pour ce titre nous ne disposons de fichier executable sur CPC (Dump, Saisie du listing) , alors si vous avez ça dans vos cartons ou vous désirez usé vos petit doigts boudinés sur votre clavier faites le nous savoir.
» Vous avez des infos personnel ?
» 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
Page créée en 018 millisecondes et consultée 1547 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.