Normalmente los objetos tienen un sprite asociado que se dibuja en la pantalla. Pero también puedes usar el evento draw. para dibujar otras cosas. Esta sección y las dos siguientes te darán información sobre este aspecto. Primero de todo, hay un grupo de funciones que sirven para dibujar sprites y fondos de distintas maneras. Estas funciones te dan un gran control sobre la apariencia gráfica del juego y te permiten hacer cosas como dibujar sólo un trozo de un fondo, rotar un sprite...
draw_sprite(sprite,subimg,x,y)
Dibuja la subimagen
subimg
(-1 = subimagen actual) del sprite con índice
sprite
con su origen
en la posición (x,y) sin teñirlo de ningún color y sin usar transparencia.
draw_sprite_stretched(sprite,subimg,x,y,w,h)
Dibuja la subimagen
subimg
del sprite con índice
sprite
de forma que
llene la región con esquina superior-izquierda en
(x,y), anchura
w
y altura
h.
draw_sprite_tiled(sprite,subimg,x,y)
Dibuja el sprite repitiéndolo horizontal y verticalmente de forma que llene toda
la pantalla. (x,y) es la posición donde se dibuja una de las copias del sprite.
draw_sprite_part(sprite,subimg,left,top,width,height,x,y)
Dibuja la parte del sprite indicada con su esquina superior izquierda en (x,y).
La parte del sprite que queremos dibujar se indica con
left
y
top
(coordenadas de la esquina superior-izquierda) y
width
y
height
(anchura y altura del trozo que queremos dibujar).
draw_background(back,x,y)
Dibuja el fondo en la posición (x,y), sin teñirlo de ningún color y sin
transparencia.
draw_background_stretched(back,x,y,w,h)
Dibuja el fondo escalado de forma que ocupe la región indicada.
draw_background_tiled(back,x,y)
Dibuja el fondo repitiéndolo en horizontal y vertical de forma que llene toda la
pantalla.
draw_background_part(back,left,top,width,height,x,y)
Dibuja el trozo indicado del fondo con su esquina superior-izquierda en la
posición (x,y).
Las funciones siguientes son versiones extendidas de las funciones anteriores. Estas funciones sólo están disponibles en la versión registrada de Game Maker.
draw_sprite_ext(sprite,subimg,x,y,xscale,yscale,rot,color,alpha)
Dibuja el sprite escalado con factores
xscale
(horizontal) e
yscale
(vertical)
y rotado
rot grados en
sentido antihorario.
color
indica el color con el que queremos teñir el sprite (usa el color blanco
c_white si no quieres teñir el sprite de ningún color) y
alpha
indica el factor de transparencia. Un valor igual a 0 hace la imagen totalmente
transparente y un valor igual a 1 la hace totalmente opaca. Con valores
intermedios conseguirás que la imagen sea parcialmente transparente. Con esta
función se pueden crear efectos muy espectaculares como explosiones semi-transparentes.
draw_sprite_stretched_ext(sprite,subimg,x,y,w,h,color,alpha)
Dibuja el sprite escalado de forma que ocupe la región indicada: esquina
superior izquierda en (x,y), anchura
w
y altura
h.
color
indica el color de
teñido y
alpha
el factor de transparencia.
draw_sprite_tiled_ext(sprite,subimg,x,y,xscale,yscale,color,alpha)
Dibuja el sprite repetido de forma que cubra toda la pantalla con factores de
escala, color de teñido y factor de transparencia.
draw_sprite_part_ext(sprite,subimg,left,top,width,height,x,y,xscale,yscale,color,alpha)
Dibuja la parte indicada del sprite con factores de escala, color de teñido y
factor de transparencia.
draw_sprite_general(sprite,subimg,left,top,width,height,x,y,xscale,yscale,rot,c1,c2,c3,c4,alpha)
La función más general para dibujar sprites. Dibuja la parte indicada de la
subimagen
subimg
(-1 = subimagen actual) del sprite con índice sprite situando su esquina
superior-izquierda en la posición (x,y) y con factores de escala, ángulo de
rotación, un color de teñido para cada una de las 4 esquinas del sprite (en el
orden arriba-izquierda, arriba-derecha, abajo-derecha y abajo-izquierda) y un
factor de transparencia. Observa que el sprite se rotará sobre su esquina
superior-izquierda y no sobre su origen.
draw_background_ext(back,x,y,xscale,yscale,rot,color,alpha)
Dibuja el fondo escalado,
rotado, teñido del color especificado (usa c_white si no quieres teñirlo)
y con factor de transparencia
alpha
(0-1).
draw_background_stretched_ext(back,x,y,w,h,color,alpha)
Dibuja el fondo escalado de forma que ocupe la región indicada con color de
teñido y factor de transparencia.
draw_background_tiled_ext(back,x,y,xscale,yscale,color,alpha)
Dibuja el fondo repetido de forma que ocupe todo el cuarto con factores de
escala, color de teñido y factor de transparencia.
draw_background_part_ext(back,left,top,width,height,x,y,xscale,yscale,color,alpha)
Dibuja la parte indicada del fondo situando su esquina superior-izquierda en la
posición (x,y) con factores de escala, color de teñido y factor de
transparencia.
draw_background_general(back,left,top,width,height,x,y,xscale,yscale,rot,c1,c2,c3,c4,alpha)
La función más general para dibujar fondos. Dibuja la parte indicada del fondo
situando su esquina superior-izquierda en la posición (x,y) con factores de
escala, ángulo de rotación, un color de teñido para cada una de las cuatro
esquinas (en el orden arriba-izquierda, arriba-derecha, abajo-derecha y
abajo-izquierda) y un factor de transparencia. Observa que el sprite se rotará
sobre su esquina superior-izquierda del trozo indicado del fondo.