Imágenes y Sprites

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.