GLOBAL STRUCT m7

STRUCT m7[9];
    camera; // Código identificador de la cámara
    height; // Altura de la cámara
    distance; // Distancia de la cámara
    horizon; // Altura del horizonte
    focus; // Focal de visión
    z; // Plano de profundidad
    color; // Color del exterior
END

Esta estructura de 10 registros contiene ciertos campos relacionados con parámetros modificables de las ventanas de modo 7. Los diez registros tienen los mismos nombres de campos, pero cada uno de ellos modifica los parámetros de una ventana de modo 7 diferente (ya que pueden activarse hasta 10 ventanas de este tipo).

Una ventana de modo 7 se podría definir como una región de pantalla que muestra un plano gráfico tridimensionalmente abatido. Por ejemplo como una hoja de papel con un dibujo que pusieramos horizontal, visualizándose en pantalla como un suelo (o techo) virtual.

Para que un registro (del 0 al 9) de la estructura m7 tenga sentido, primero debe activarse dicha ventana de modo 7 (del 0 al 9) con la función start_mode7() (ver esta función para más información sobre las ventanas de modo 7}.

Se entiende que los campos de esta estructura son complementarios a los parámetros de llamada de esta última función. Para poder observar un ejemplo práctico de un modo 7, se puede acceder a la ayuda sobre la función start_mode7().


Forma de uso de la estructura m7:

Para acceder a estos campos se debe preceder el nombre del campo por la palabra m7, el número de registro entre corchetes y el símbolo . (punto).

Por ejemplo, si se inicializaran dos ventanas de modo 7, la número 0 y la número 1, se podría acceder a la variable camera de ambas ventanas como m7[0].camera y m7[1].camera, respectivamente. Cuando se acceda a la ventana número 0 de modo 7 se puede, además, omitir el número de ventanas entre corchetes, es decir, que la variable m7.camera y la variable m7[0].camera son, a todos los efectos, la misma para el lenguaje.


Se muestra a continuación una descripción detallada de cada campo

camera - Código identificador del proceso al que sigue la cámara. Para mover la cámara que controla la visión del modo 7, únicamente se debe crear un proceso de modo 7, un proceso que tenga su variable local ctype = c_m7, y poner su código identificador en la variable camera de esta estructura. Tras esto, símplemente se deben modificar las variables locales x, y e angle de este proceso y, por ejemplo, utilizar la función advance() para mover hacia delante la cámara.

El campo camera es imprescindible inicializarlo para que se active la ventana de modo 7; sin este campo, la ventana no puede determinar desde dónde se debe ver el plano abatido.


height - Altura de la cámara. Esta variable de la estructura regula la distancia a la que se sitúa del suelo la cámara, por defecto su valor es 32. Cualquier número positivo hará que se sitúe la cámara más arriba cuanto mayor sea el número. Si el valor puesto en el campo height de esta misma estructura es negativo, menor que cero, entonces la cámara se situará por debajo del plano abatido, mostrándose un "techo" en lugar de un "suelo".

Se pueden crear dos modos-7 dentro de la misma región: uno como techo y otro como suelo (uno con height positiva y otro negativa). En este caso, es importante fijar la variable z de la estructura m7 de ambos para, de esta forma, determinar en qué plano de profundidad se debe pintar cada uno.


distance - Distancia de la cámara al proceso seguido. El punto de vista de la cámara siempre se situará un poco por detrás del proceso cuyo identificador se ha puesto en el campo camera de la estructura. Esto se hace para que se vea el gráfico del proceso utilizado como cámara, en el caso de que este proceso lo tenga definido (en su variable local graph o xgraph).

Por defecto, la cámara se situará a 64 puntos por detrás del proceso. Se entiende por "detrás", a un punto situado a la distancia indicada del gráfico en el ángulo contrario al que esté orientado el proceso; por ejemplo, si el proceso está mirando a la derecha, 64 puntos a la izquierda del mismo.


horizon - Altura del horizonte. Éste es el mismo valor que se indicaba como último parámetro de la función start_mode7(); su valor inicial será el que se indicó en la llamada a esta función. La utilidad de esta variable es el poder hacer que suba o baje el horizonte en cada visualización (imagen) del juego según las necesidades de éste.

Al variar la altura del horizonte se conseguirá en la ventana de modo 7 el efecto de "mirar hacia arriba" y "mirar hacia abajo".


focus - Focal para la cámara. Esta variable controla la perspectiva de la cámara; por defecto, su valor es 256 pero se puede poner cualquier valor entre 0 y 512, consiguiendo diversos efectos de deformación del plano tridimensional.

Es decir, este campo controla el ángulo que capta el foco de la cámara; cuanto mayor sea este valor, más cerca se verán todos los objetos (procesos) situados en el plano abatido.


z - Prioridad de impresión del modo 7, aquí se indica en qué plano de profundidad se debe pintar esta ventana, respecto al resto de procesos. Por defecto, esta variable valdrá 256 lo cual quiere decir que, como los procesos por defecto tienen su variable local z a 0, la ventana de modo 7 se pintará en un plano de profundidad mayor, más al fondo, visualizándose los gráficos de los procesos por encima de la ventana. Para variar esta situación se puede modificar la variable z de la ventana (por ejemplo ponerla a -1) o la variable z de los procesos (por ejemplo ponerla a 257).


color - Color para el exterior del modo 7. Cuando en la llamada a la función start_mode7() no se especifique ningún gráfico exterior (se ponga a 0 el cuarto parámetro de llamada), esta variable controlará de qué color se quiere pintar el exterior, es decir, de qué color debe ser la pantalla más allá del gráfico que se está abatiendo (más alla de sus límites).

Este campo está inicializado por defecto a 0 que, normalmente, es el color negro en la paleta de colores, por lo que, si no se asigna a este campo otro valor (y no se define un gráfico exterior) se verá la pantalla en negro más allá del plano principal.


Ver: Datos globales - start_mode7() - stop_mode7()