★ CODING ★ AMSTRAD SEMANAL ★ AHORRAR MEMORIA EN GRÁFICOS III ★![]() |
| Ahorrar memoria en gráficos III |
En artículos anteriores hemos hablado del ahorro de memoria en gráficos a través de dos métodos distintos. Uno de ellos aumentaba el tamaño del gráfico original y el otro ampliaba los gráficos de modo 2 a modo 1. Para cerrar completamente el tema, nos falta ver cómo conseguir ahorrar memoria traspasando gráficos realizados en modo 2 a modo 0. Con la utilización de este último método, la cantidad de memoria destinada a gráficos se consigue reducir de una forma espectacular, ya que 'el número de bytes a utilizar es únicamente una cuarta parte de la que sería necesario en condiciones normales. Por otra parte, el programa que presentamos, además de permitirnos pasar el gráfico a modo 0, nos ofrece la posibilidad de traspasarlo en el color que nosotros deseemos, es decir en cualquiera de los 15 colores disponibles en el modo gráfico multicolor. Por si esto fuera poco, esta rutina nos permitirá imprimir, directamente en pantalla, en el modo multicolor gráficos que se encuentren en memoria en el formato de alta resolución de pantalla. Con todo lo dicho, rápidamente podemos darnos cuenta que pasar una pantalla de modo 2 a modo 0, es inmediato, ya que únicamente es necesario almacenar una pantalla en memoria e imprimirla en el monitor, con lo cual la obtendremos directamente en el modo multicolor. Para el perfecto funcionamiento de nuestro programa, se deberá llamar a la misma indicando los parámetros siguientes: D .......... Coord. vertical de pantalla.Además deberemos indicar en la variable color la tinta con la que se desee imprimir el bloque gráfico en pantalla. |
| Tinta | Valor |
| 1 | 11000000 |
| 2 | 00001100 |
| 3 | 11001100 |
| 4 | 00110000 |
| 5 | 11110000 |
| 6 | 00111100 |
| 7 | 11111100 |
| 8 | 00000011 |
| 9 | 11000011 |
| 10 | 00001111 |
| 11 | 11001111 |
| 14 | 00111111 |
| 15 | 11111111 |
Teniendo en cuenta estos datos, no debería resultar difícil tomar cada uno de los bits del gráfico en modo 2 y traspasarlo al modo 0 con el color correspondiente.
Dado que nuestro programa, además de convertir los gráficos, los imprime directamente en pantalla, se deberá disponer de todas las rutinas necesarias para traspasar el gráfico en cada uno de los colores.
Otra cosa que hay que tener en cuenta, es que, dado que por cada byte de gráfico inical, obtendremos cuatro de gráfico final, los incrementos que deberemos efectuar en cada impresión serán de cuatro caracteres en sentido horizontal en lugar de uno.
Un ahorro tan importante de memoria, no se puede realizar sin que existan algunos inconvenientes. En este caso cada uno de los gráficos sólo podrá imprimerse con un color, aunque, por supuestos, diversos gráficos, o incluso el mismo gráfico, pueden ser pintados en diferentes colores.
El segundo inconveniente reside en la velocidad de impresión en pantalla de la rutina, ya que además de esto se deberán tratar cada uno de los bits del gráfico inicial, con la consecuente pérdida de tiempo.
Aún en vista de estas dos desventajas, creemos que las utilidades ofrecidas por esta rutina superan en mucho los posibles inconvenientes, debido al enorme ahorro de memoria.
Con esta rutina conseguiremos el ahorro máximo posible para un gráfico.
Con este artículo damos por terminado el tema, por lo que a continuación expondremos en qué posibles casos puede aplicarse cada una de las diferentes rutinas que hemos visto, aunque por supuesto todas ellas son aplicables en cualquier momento.
Empezaremos por el programa que nos permitía traspasar gráficos de modo 2 a modo 1.
Conseguir 100 pantallas distintas utilizando esta técnica es simplemente un problema de imaginación.
Es el de mayor aplicación práctica, ya que se puede utilizar siempre que nos dispongamos a trabajar en el modo de resolución intermedia, en el cual tenemos cuatro colores disponibles.
Tanto es así que una rutina similar a esta es utilizada por la mayoría de los programas comerciales realizados en tres dimensiones, utilizando el llamado sistema filmation.
El siguiente método de ahorro de gráficos, es el que nos permitía magnificar o ampliar los gráficos.
Esta rutina es aplicable, principalmente, cuando se deseen rellenar amplios espacios de la pantalla con gráficos, o bien en el caso de que quiera almacenar una pantalla entera en memoria.
No es recomendable utilizar este método para imprimir los objetos o personajes que vayan a intervenir en el juego, ya que la definición que se pierde es vital para gráficos de dimensiones reducidas.
Por último, diremos que la rutina que hemos visto hoy, podrá ser utilizada en cualquier juego que deseemos confeccionar en el modo de menor resolución de pantalla y siempre que los gráficos no sean excesivamente grandes.
En general, los objetos móviles y personajes de cualquier juego, son de dimensiones reducidas, por lo que no deberemos tener ningún problema en la aplicación de la rutina.
Para disponer de esta rutina únicamente deberemos teclear el programa Basic cargador que ofrecemos al final del artículo.
Una vez ejecutado, y en caso de que no se haya mostrado ningún mensaje de error, procederemos a salvar el código objeto en cinta o disco de la forma siguiente:
| ![]() |
|
Page créée en 658 millisecondes et consultée 8 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. |