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.