Botones automáticos

-Autor: Mega-G
-Explicación: Añade tantos botones como quieras a tu juego con sólo usar la función script_boton() en el evento <Draw>. Automáticamente podrás hacer click sobre ellos y obtener respuesta, y además se iluminarán al pasar el ratón encima.

Aquí una muestra de cómo se ve:


-Versiones: GM7, GM8 y GMStudio

-Scripts:


script_boton(x,y,texto,sprite_normal,sprite_hover)

x Coordenada X del centro del botón.
y Coordenada Y del centro del botón.
texto Texto que quieres que muestre el botón
sprite_normal Sprite del botón con 3 subimágenes: 1-Límite izquierdo del botón. 2-Centro. 3-Límite derecho del ratón.
sprite_hover Sprite del botón cuando pasas el ratón por encima. Las subimágenes son las mismas que el anterior.

Si no os ha quedado claro cómo van las subimágenes del sprite os dejo una captura de pantalla:


Retorna True si el ratón ha hecho click sobre el botón. De lo contrario retorna siempre False.


Este es el Script:


//script_boton(x,y,"Texto del boton",sprite_normal,sprite_hover)
//if script_boton(x,y,"Texto",spr_boton,spr_boton2)=true { show_message("Has pulsado el boton!!"); }

var spr;

draw_set_halign(fa_center)
draw_set_valign(fa_center)
draw_set_font(fnt_buttons)

if mouse_x>argument0-string_width(argument2)/2-8 and mouse_x<argument0+string_width(argument2)/2+8 and mouse_y>argument1-20 and mouse_y<argument1+20
{
spr=argument4
}
else
{
spr=argument3
}

draw_sprite_ext(spr,1,argument0,argument1,string_width(argument2)/16,1,0,c_white,1)
draw_sprite(spr,0,argument0-string_width(argument2)/2,argument1)
draw_sprite(spr,2,argument0+string_width(argument2)/2,argument1)
draw_set_color(c_white)
draw_text(argument0,argument1,argument2)
draw_set_halign(fa_left)
draw_set_valign(fa_top)


if mouse_x>argument0-8-string_width(argument2)/2 and mouse_x<argument0+string_width(argument2)/2+8 and mouse_y>argument1-20 and mouse_y<argument1+20 and mouse_check_button_released(mb_left)
{
return true;
}


Para usarlo símplemente añade en el evento <Draw> de un objeto:


if script_boton(100,200,"Texto",spr_boton,spr_boton2)=true
{
show_message("Has pulsado el boton!!");
}




El ejemplo del vídeo lo podéis descargar aquí: http://guinxu.com/downtut.php?link=26.
Es un editable de GM7 pero lo podéis importar a GMStudio sin problemas, lo he comprobado y es compatible.


Como siempre mis ejemplos son libres para el que quiera utilizarlos.
Os responderé las dudas/preguntas que tengáis si algo no ha quedado claro.


¡Saludos!