Game Maker dispone de una amplia colección de funciones para dibujar diferentes formas. También hay otras funciones para dibujar texto (consulta el capítulo siguiente). Estas funciones de dibujo sólo se pueden usar en el evento draw ya que no tienen sentido si se colocan en otro evento. Debes tener en cuenta que las colisiones entre las instancias se determinan según sus sprites y sus máscaras de colisión y no según lo que cada instancia dibuja en la pantalla. Las funciones siguientes sirven para dibujar las formas básicas:
draw_clear(col)
Pinta todo el cuarto del color especificado.
draw_clear_alpha(col,alpha)
Pinta todo el cuarto del color especificado y con el factor de transparencia
indicado (muy útil para superficies).
draw_point(x,y)
Dibuja un punto en (x,y) en el color de dibujo actual.
draw_line(x1,y1,x2,y2)
Dibuja una línea desde (x1,y1) hasta (x2,y2).
draw_rectangle(x1,y1,x2,y2,outline)
Dibuja un rectángulo.
outline
indica si sólo debe dibujarse el borde (true) o si el rectángulo debe estar
relleno (false).
draw_roundrect(x1,y1,x2,y2,outline)
Dibuja un rectángulo redondeado.
outline
indica si sólo debe dibujarse el borde (true) o si el rectángulo debe estar
relleno (false).
draw_triangle(x1,y1,x2,y2,x3,y3,outline)
Dibuja un triángulo.
outline
indica si sólo debe dibujarse el borde (true) o si debe estar relleno (false).
draw_circle(x,y,r,outline)
Dibuja un círculo con su centro en (x,y) y radio r.
outline
indica si sólo debe dibujarse el borde (true) o si debe estar relleno (false).
draw_ellipse(x1,y1,x2,y2,outline)
Dibuja una elipse.
outline
indica si sólo debe dibujarse el borde (true) o si debe estar rellena (false).
draw_arrow(x1,y1,x2,y2,size)
Dibuja una flecha desde (x1,y1) hasta (x2,y2).
size
indica el tamaño de la flecha en píxeles.
draw_button(x1,y1,x2,y2,up)
Dibuja un botón.
up
indica si está pulsado (0) o no (1).
draw_path(path,x,y,absolute)
Con esta función puedes dibujar el path indicado en el cuarto con su comienzo en
la posición (x,y). Si
absolute
es true el path se dibuja en la posición en la que fue definido y los valores de
x e y son ignorados.
draw_healthbar(x1,y1,x2,y2,amount,backcol,mincol,maxcol,direction,showback,showborder)
Con esta función puedes dibujar una barra de vida (o una barra que indique
cualquier otra cosa como poder, magia,…). Los parámetros x1, y1, x2 e y2 indican
el área total de la barra.
amount
indica el porcentaje de la barra que debe estar relleno (debe estar entre 0 y
100).
backcol es el
color de fondo de la barra.
mincol
y
maxcol
indican el color cuando el porcentaje de llenado (parámetro amount) es 0 y 100
respectivamente. Para un porcentaje intermedio el color se interpola entre estos
dos. Así puedes crear fácilmente una barra que vaya de verde a rojo, por
ejemplo.
direction
es la dirección en la que la barra se dibuja: 0 significa que la barra está
fijada a la izquierda, 1 a la derecha, 2 arriba y 3 abajo. Finalmente,
showback
indica si debe mostrarse una caja de fondo y
showborder
si la caja de fondo y la barra deben tener un borde negro.
Muchas de las funciones anteriores utilizan los colores y transparencia generales de dibujo que pueden ser cambiados con estas funciones:
draw_set_color(col)
Indica el color que debe usarse para dibujar primitivas.
draw_set_alpha(alpha)
Indica el factor de transparencia que debe usarse para dibujar primitivas. Debe
estar comprendido en el rango 0-1. 0 significa totalmente transparente y 1
totalmente opaco.
draw_get_color()
Devuelve el color general de dibujo utilizado para dibujar primitivas.
draw_get_alpha()Devuelve
el factor de transparencia general de dibujo utilizado para dibujar primitivas.
Hay un gran rango de colores predefinidos:
c_aqua
c_black
c_blue
c_dkgray
c_fuchsia
c_gray
c_green
c_lime
c_ltgray
c_maroon
c_navy
c_olive
c_purple
c_red
c_silver
c_teal
c_white
c_yellow
Sin embargo, también puedes usar las funciones siguientes para crear tus propios colores:
make_color_rgb(red,green,blue)
Devuelve un color con los componentes indicados de rojo, verde y azul. Los
valores indicados deben estar entre 0 y 255 (ambos inclusive).
make_color_hsv(hue,saturation,value)
Devuelve un color con los componentes indicados de brillo, saturación y valor.
Los valores indicados deben estar entre 0 y 255 (ambos inclusive).
color_get_red(col)
Devuelve el componente de rojo del color.
color_get_green(col)
Devuelve el componente de verde del color.
color_get_blue(col)
Devuelve el componente de azul del color.
color_get_hue(col)
Devuelve el componente de brillo del color.
color_get_saturation(col)
Devuelve el componente de saturación del color.
color_get_value(col)
Devuelve el componente de valor del color.
merge_color(col1,col2,amount)
Devuelve un color resultante de mezclar los dos colores indicados. La mezcla se
determina por el parámetro
amount:
un valor igual a 0 corresponde a col1, un valor de 1 corresponde a col2 y un
valor intermedio hace que se mezclen los dos colores.
También puedes utilizar las siguientes funciones misceláneas:
draw_getpixel(x,y)
Devuelve el color del píxel en la posición (x,y) del cuarto. Esta función no es
muy rápida, así que úsala con cuidado.
screen_save(fname)
Salva una imagen bmp de la pantalla en el archive especificado. Útil para crear
screenshots.
screen_save_part(fname,x,y,w,h)
Salva la parte de la pantalla indicada a un archive bmp.