Sprites

Las siguientes funciones permiten modificar las propiedades de los sprites:

sprite_set_offset(ind,xoff,yoff) Establece el offset del sprite.
sprite_set_bbox_mode(ind,mode) Establece a mode el tipo de caja de colisión del sprite (0 = automática, 1 = imagen completa, 2 = manual).
sprite_set_bbox(ind,left,top,right,bottom) Configura la caja de colisión del sprite con índice ind. Funciona solo cuando es manual el modo de caja de colisión.
sprite_set_precise(ind,mode) Establece si el sprite con índice ind usa chequeo de colisión precisa (true o false).

Las siguientes funciones pueden utilizarse para crear nuevos sprites y para eliminarlos.

sprite_duplicate(ind) Crea una copia del sprite con índice ind. Devuelve el índice del nuevo sprite. Devuelve -1 si se presenta algún error.
sprite_assign(ind,spr) Asigna el sprite spr al al sprite con índice ind. Es decir, crea una copia del sprite. De esta manera fácilmente puedes asignar un sprite existente a p. ej. un nuevo sprite.
sprite_merge(ind1,ind2) Fusiona las imagines del sprite ind2 en el sprite ind1, agregándolas al final de este ultimo. Si los tamaños no corresponden los sprites son encogidos. ¡No se elimina el sprite ind2!
sprite_add(fname,imgnumb,precise,transparent,smooth,preload,xorig,yorig) Agrega a los recursos sprites la imagen del archivo fname. Solo se pueden agregar imágenes bmp, jpg y gif. Cuando se trata de un bmp o jpg la imagen puede ser una tira que contenga las subimágenes del sprite una junto a la otra. Se usa imgnumb para indicar el número de subimágenes (1 para una sola). Este argumento no es empleado con imágenes gif (animadas); se emplea el número de imágenes del archivo gif. precise indica si se usará chequeo de colisión precisa. transparent indica si la imagen es parcialmente transparente. smooth indica si se alisarán los bordes. preload indica si se precargará la imagen en la memoria de texturas. xorig y yorig indican la posición de origen en el sprite. La función devuelve el índice del nuevo sprite. Si ocurre algún error devuelve -1.
sprite_replace(ind,fname,imgnumb,precise,transparent,smooth,preload,xorig,yorig) Lo mismo que la anterior pero en este caso se reemplaza al sprite con índice ind. El valor devuelvo por la función indica si tuvo éxito la operación.
sprite_create_from_screen(x,y,w,h,precise,transparent,smooth,preload,xorig,yorig) Crea un nuevo sprite copiando de un área indicada de la pantalla. Esto permite crear cualquier sprite que se desee. Se dibuja la imagen en pantalla empleando las funciones de dibujado y luego se crea un sprite con ella. (Si no se hace dentro del evento drawing aún se puede hacer de manera que no sea visible si no se refresca la pantalla). Los demás parámetros son similares a los indicados en las anteriores funciones. La función devuelve el índice del sprite. Pero se poner algo de cuidado aquí. Aunque se habla de la pantalla, de hecho, lo que importa es el área en donde se dibuja. No importa el hecho de que haya una ventana en pantalla y que la imagen pudiera estar escalada en esta ventana.
sprite_add_from_screen(ind,x,y,w,h) Agrega un área de la pantalla como la siguiente subimagen del sprite con índice ind. x, y, w y h indican las dimensiones del área en pantalla (coordenadas x, y, ancho y alto).
sprite_delete(ind) Elimina el sprite, liberando la memoria utilizada.

Se cuenta con la siguiente rutina para cambiar la apariencia de un sprite.

sprite_set_alpha_from_sprite(ind,spr) Cambia los valores alfa (transparencia) del sprite con índice ind usando los valores de luminosidad (hue) del sprite spr. Esta acción no se puede deshacer.