Cada objeto tiene un sprite asociado. Puede ser una imagen simple o compuesta por varias subimágenes. Para cada instancia del objeto, el programa dibuja la imagen correspondiente en la pantalla, con su origen (definido en las propiedades de sprite) en la posición (x,y) de la instancia. Cuando hay varias subimágenes, ésta se reproduce a través de las subimágenes para crear un efecto de animación. Hay varias variables que afectan en el modo en que se dibuja la imagen. Estas pueden sert utilizadas para cambiar los efectos. Cada instancia posee las siguientes variables:
visible : Si visible es cierto (1) la imagen se dibuja, en caso contrario no se dibuja. Las instancias invisibles aun son activas y crean eventos de colisión; Simplemente no puedes verlas. Definir la visibilidad como falso es útil para por ejemplo objetos controladores (hazlos también no sólidos para evitar eventos de colisión con ellos) o palancas ocultas.
sprite_index
Este es el índice del sprite actual para la instancia. Puedes cambiarlo para
asignar un sprite diferente a la instancia. Como valor puedes usar los nombres
de los diferentes sprites que definas . Cambiando el sprite no cambias el índice
de la subimagen actual.
sprite_width*
Indica el ancho del sprite. Este valor no puede ser cambiado, pero puedes
utilizarlo.
sprite_height* Indica el alto del sprite. Este valor no puede ser cambiado, pero puedes utilizarlo.
sprite_xoffset* Indica el offset horizontal del sprite, como esta definido en las propiedades del sprite. Este valor no puede ser cambiado, pero puedes utilizarlo.
sprite_yoffset* Indica el offset horizontal del sprite, como esta definido en las propiedades del sprite. Este valor no puede ser cambiado, pero puedes utilizarlo.
image_number* El numero de subimágenes del sprite actual de la instancia (no puede ser cambiado).
image_index Cuando la imagen tiene varias subimágenes, el programa las recorre cíclicamente. Esta variable indica la subimagen dibujada actualmente (están numeradas desde 0). Puedes cambiar la imagen actual cambiando esta variable. EL programa continuará reproduciendo el ciclo de subimágenes, pero comenzando desde el nuevo índice. (El valor puede ser fraccional. En este caso, se redondea siempre hacia abajo para obtener el índice de la subimagen dibujada.
image_speed La velocidad con que se reproduce el ciclo de subimágenes. Un valor de 1 indica que en cada paso se muestra la siguiente subimagen . Valores menores, reducirán la velocidad de visualización de la animación, dibujando la misma subimagen varias veces. Valores mayores harán que se salten subimágenes para aumentar la velocidad de la animación. A veces quieres que una subimagen en particular sea visible y no quieres que el programa muestre todas las demás subimágenes. Puedes conseguir esto definiendo la velocidad igual a 0 y eligiendo la subimagen correcta. Por ejemplo, asumamos que tenemos un objeto que puede rotar y has creado un sprite que tiene varias subimágenes para las diferentes orientaciones (en sentido contrario a las agujas del reloj) Puedes introducir el siguiente código en el evento step:
{
image_index = direction * image_number/360;
image_speed = 0;
}
depth
Normalmente las imágenes son dibujadas en el orden en que se crean las
instancias. Puedes cambiar este orden cambiando la profundidad de la imagen. El
valor por defecto es 0, hasta que le introduzcas un valor diferente en las
propiedades del objeto. Cuanto mayor es el valor más al fondo se dibujará la
instancia. (También puedes utilizar valores negativos.) Las instancias con mayor
profundidad permanecerán debajo de las instancias con menor profundidad.
Definiendo la profundidad garantizamos que las instancias son dibujadas en el
orden que queremos. (Ej. El avión sobre la nube). Las instancias de fondo
tendrán una alta profundidad (valor positivo) y las imágenes frontales tendrán
una profundidad baja (valores negativos).
image_xscale
Un valor de escala para hacer mayores o menores las imágenes. Un valor de 1
indica el tamaño normal. Debes separar la escala horizontal xscale y la vertical
yscale. Cambiando la escala también cambian el ancho y el alto de la imagen e
influye en los eventos de collisión, como podrías esperar. Cambiar la escala
puede ser utilizado para dar un efecto 3-D. Puedes utilizar un valor de -1 para
invertir horizontalmente la imagen.
image_yscale
Escala vertical yscale. 1 no modifica el tamaño. Puedes utilizar un valor de -1
para invertir verticalmente la imagen.
image_angle
El ángulo con que se rota la imagen. Se especifica en grados en sentido
contrario a las agujas del reloj. Un valor de 0 indica que no hay rotación.
Esta variable solo puede modificarse en la versión registrada!
image_alpha
El valor de transparencia (alpha) que se aplica al dibujar la imagen. Un valor
de 1 es la opacidad normal; un valor de 0 es totalmente transparente.
image_blend
Teñido de color que
se aplica al dibujar la imagen. Un valor de color blanco (c_white) es el que se
utiliza por defecto. Cuando especificas un color diferente, la imagen se tiñe de
dicho color. Esto puede ser utilizado para colorear el personaje en tiempo de
ejecución. Esta variable solo puede modificarse en la versión registrada!
bbox_left*
Lado izquierdo de la caja de contorno utilizada por la imagen de la instancia
(Se toma en cuenta el escalado).
bbox_right*
Lado derecho de la caja de contorno utilizada por la imagen de la instancia
bbox_top*
parte superior de la caja de contorno utilizada por la imagen de la instancia.
bbox_bottom*
parte inferior de la
caja de contorno utilizada por la imagen de la instancia.