CODINGAMSTRAD SEMANAL ★ CONSTRUCTOR DE PANTALLAS ★

Constructor de pantallas
★ 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 ★ 

Hasta ahora habíamos visto programas de diseño de sprites, rutinas que los mueven, detectan sus choques... sin embargo aún nos queda una pieza clave, y en la que se fundamenta el éxito de los grandes juegos comerciales: el entorno gráfico. A lo largo de este articulo nos vamos a ocupar de estos paisajes, de cómo realizarlos y además manejar cómodamente los distintos bloques que integran las numerosas pantallas que siempre conlleva un juego. Y todo esto lo vamos a realizar de manera fácil y sencilla, tanto su diseño como su posterior manipulación, mediante un diseñador a base de bloques gráficos y las rutinas necesarias para manipular estos bloques y convertirlos meramente en una pantalla completa.

Uno de los mayores problemas con que se encuentran los programadores en el momento de crear un juego, estriba en la formación de las pantallas que lo van a componer.

En realidad ello se debe a la cantidad de tiempo hay que invertir para que cada una de las pantallas que forman el programa resulte perfecta, tanto en el aspecto estético, como en el de dificultad.

Veamos ahora el porqué de esta dificultad estudiando de los pasos a seguir para la creación de cada una de las pantallas que compondrán nuestro juego.

En primer lugar, deberemos tener muy claro qué tipo de programa se pretende hacer, es decir, si lo que se desea es crear un escenario para un juego tipo arcade o tipo videoaventura.

El primer tipo de programas requiere unas pantallas muy bien estudiadas en cuanto a la distribución de los objetos, en el segundo debe predominar la estética.

Otro de los pasos para la construcción de las pantallas es la confección de los gráficos que se van a utilizar, paredes, puertas, ventanas, etc.

Una vez hecho esto, sólo queda construir cada una de las pantallas, lo cual deberemos hacer uniendo a modo de rompecabezas los gráficos que se han diseñado anteriormente.

Esta última es una tarea de las más trabajosas, ya que deberemos estudiar cuál es la posición más idónea para cada uno de los gráficos.

Hemos pensado que este último paso puede solucionarse mucho más fácilmente si se prepara una rutina que nos permita colocar en pantalla cada uno de estos gráficos de una forma sencilla.

Así pues, el programa que ofrecemos hoy nos permitirá la creación de pantallas de una forma muy cómoda, y además se podrán salvar los datos para cada una de las pantallas, para luego poderlas construir con una segunda rutina que se incluirá en nuestro propio programa.

Por lo tanto, dispondremos de dos programas totalmente diferenciados, el primero de ellos nos permitirá la creación de pantallas, y el segundo tomará los datos que nos proporcione el primero para la posterior presentación de las mismas.

Veremos a continuación el funcionamiento de la primera de las rutinas, es decir, la que nos va a permitir construir nuestras pantallas.

Esta primera rutina se encuentra ubicada en dirección &A000, y utiliza un buffer para el manejo de la pantalla a partir de la dirección &6000. Por lo tanto, los gráficos que carguemos en la memoria nunca podrán sobrepasar este límite.

Una vez ejecutado el programa, dispondremos de las siguientes opciones:

  • Cursor derecha.......Derecha
  • Cursor izquierda .....Izquierda
  • Cursor arriba ........Arriba
  • Cursor abajo.........Abajo
  • Copia ...............Imprimir gráficos
  • CLR ...............Borrar gráficos
  • B ..................Volver a Basic

Una vez dentro de la opción de imprimir gráficos, dispondremos de dos posibilidades:

  • Enter ............... Coloca gráfico en pantalla
  • Cualquier otra tecla ... Pasa al siguiente gráfico

Las teclas de movimiento nos permitirán desplazar un cursor por la pantalla para elegir la posición donde colocar los gráficos.

Cuando se desee imprimir un gráfico en pantalla, deberemos pulsar la tecla Copia, con lo cual nos aparecerán los gráficos en la parte superior izquierda de la pantalla. Para elegir el que deseemos, deberemos pulsar cualquier tecla, una vez que aparezca el gráfico deseado pulsaremos la tecla Enter, con lo cual nos aparecerá dicho gráfico en la posición del cursor.

Si por cualquier circunstancia deseamos eliminar cualquiera de los gráficos que aparecen en pantalla, nos situamos en la esquina superior izquierda del mismo y pulsamos la tecla CLR, con lo cual dicho gráfico desaparecerá de pantalla.

Para que esta rutina pueda funcionar correctamente, deberemos confeccionar una tabla de datos que colocaremos a partir de la dirección #A270.

Esta tabla deberá contener la altura, anchura y dirección de cada uno de los gráficos que se encuentren en memoria, de esta forma deberemos introducir cuatro valores por cada gráfico.

Estos valores se deberán colocar en el orden que se indica a continuación:

  • Byte 1 ....... Altura del gráfico
  • Byte 2 ....... Anchura del gráfico
  • Byte 3 ....... Byte menos significativo de la dirección del gráfico
  • Byte 4 ....... Byte más significativo de la dirección del gráfico

De esta forma si tuviésemos en memoria un total de 10 gráficos, la longitud de la tabla sería de 40 valores, ya que como hemos dicho cada gráfico necesita un total de 4.

Una vez se hayan introducido todos los datos

necesarios, deberemos colocar el valor 255, que será el indicador de fin de tabla, para que la rutina en Código Máquina sepa cuál es el último dato de la tabla.

Vamos a ver ahora cómo debemos calcular el byte más significativo y menos significativo de la dirección del gráfico en memoria.

  • BA ..... Byte más significativo
  • BB ...... Byte menos significativo
  • DI ...... Dirección del gráfico
  • BA = INT(DI/256)
  • BB = DI—256*BA

Este cálculo podemos verlo prácticamente en el programa demostración que nos permitirá construir una pantalla con los gráficos que dicho programa crea.

Además, en dicho programa se puede comprobar cómo se introducen los datos de cada uno de los gráficos en la posición correspondiente de la tabla.

Una vez introducidos todos los datos necesarios, estaremos en condiciones de ejecutar el programa que nos permitirá la construcción de todas las pantallas que se deseen.

Una vez hayamos finalizado la creación de cada una de estas pantallas, pulsaremos la tecla B, que nos permitirá volver al Basic, para poder salvar los datos de nuestra pantalla en cinta o disco.

Dichos datos estarán situados a partir de la dirección hexadecimal #A400, y cuya lontigud deberemos calcular, ya que para cada pantalla creada ésta será diferente.

Cada uno de los gráficos que se impriman en pantalla generarán 6 datos, que nos indicarán lo siguiente:

  • Byte 1 ....... Posición vertical
  • Byte 2 ....... Posición horizontal
  • Byte 3 ....... Altura del gráfico
  • Byte 4 ....... Altura del gráfico
  • Byte 5 ....... Byte menos sig. de la dirección del gráfico
  • Byte 6 ....... Byte más sig. de la dirección del gráfico

La dirección final de la tabla de datos se obtendrá observando dos posiciones de memoria de la forma que indicamos a continuación:

Con el creador de pantallas que acompaña el artículo,
usted podrá diseñarlas cómodamente y después unirlas en sus propios programas,
con lo que no sólo tendrá resuelta su creación y diseño,
sino también la gestión que deberá realizar con estos bloques gráficos.

DIR. FINAL

TABLA = PEEK(&A265) + 256*PEEK(A266)

Así pues, la longitud de la tabla será la diferencia entre la dirección inicial y esta última:

LONG. DE LA TABLA = DIR. FINAL
TABLA-&A400 + 1

Una vez calculada la longitud y conociendo la dirección inicial que es fija (&A400), podremos salvar la tabla de datos en disco o cinta para poder ser utilizada posteriormente:

SAVE”TABLA1”,B,&A400,LONG

Vamos a ver ahora la rutina que nos permitirá imprimir cada una de las pantallas a partir de los datos de las tablas generadas por el programa anterior.

Este programa, en principio, se encuentra ubicado en la dirección &A000 pero nosotros podremos ensamblarlo en cualquier posición de memoria.

Dicha rutina leerá los datos correspondientes a cada una de las pantallas creadas anteriormente e imprimirá los gráficos correspondientes a cada dato.

En principio la tabla se toma de la dirección &A400, pero cambiando el valor de datos, podremos situar la tabla en cualquier lugar de la memoria.

Teniendo en cuenta estas dos condiciones, el programa nos creará la pantalla cuyos datos se encuentren en la tabla.

Para probar estas rutinas se puede utilizar el programa Basic que os oírecemos, creando en primer lugar la pantalla que deseemos mediante los gráficos que genera el programa, que son simplemente rectángulos de diferentes colores, para no tener que copiar demasiados gráficos.

Una vez realizada la pantalla, salvaremos en disco o cinta la tabla de datos, y a continuación cargaremos el programa creador de pantallas y lo ejecutaremos, con lo cual obtendremos la pantalla que se había creado anteriormente.

Por último, sólo decir que para poder ejecutar el programa Basic, deberemos copiar el listado ensamblador que se ofrece, o bien teclear el programa cargador Basic, y salvarlo como Código Máquina.

Lo mismo se deberá hacer con la rutina creadora de pantallas, para poder generar los gráficos que se encuentren en la tabla de datos.

AS

★ PUBLISHERS: Hobby Press , Amstrad Semanal
★ YEAR: 1987
★ CONFIG: 64K + AMSDOS
★ LANGUAGE:
★ LiCENCE: LISTING
★ COLLECTION: AMSTRAD SEMANAL 1987
★ AUTOR: Alberto SUÑER
 



★ AMSTRAD CPC ★ DOWNLOAD ★

Type-in/Listing:
 » Constructor  de  pantallas    (Amstrad  Semanal)    SPANISH    LISTINGDATE: 2026-07-05
DL: 0
TYPE: PDF
SiZE: 1963Ko
NOTE: Supplied by archive.org ; 6 pages/PDFlib v1.6

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.732-desktop
Page créée en 261 millisecondes et consultée 5 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.