Различные кнопки, квадратные полукруглые, круглые , треугольные.
Все объекты отображаются посредством draw_shape, никаких image ов.
/// @description Create
//Site: MidaDev.ru
//Author: Dimusikus
text_scale_current = 1; //масштаб текста
text_scale_default = 1; //масштаб текста
/// @description Draw
//Site: MidaDev.ru
//Author: Dimusikus
//если прописан шрифт, устанавливаем нужный шрифт
if btntext_text_fnt !=0 then draw_set_font(btntext_text_fnt)
var col_high = btntext_text_color;
draw_set_halign(fa_center);
draw_set_valign(fa_middle);
//***************************************************************************************************************************************
//проверяем позицию мышки внутри кнопки объекта
if get_mouse_over_shapes(btntext_border) == true
{ //мышка навелась на кнопку
//---------------------------------------------------
//кнопка нажата?
mouse_pressed_left_button = mouse_check_button(mb_left);
//---------------------------------------------------
//зависимости от нажатой и ненажатой кнопки
if mouse_pressed_left_button == true then text_scale_current = lerp(text_scale_current, btntext_press_text_scale, btntext_press_text_scale_speed);
else text_scale_current = lerp(text_scale_current, btntext_hover_text_scale, btntext_press_text_scale_speed);
//---------------------------------------------------
draw_set_color(btntext_hover_border_color);
draw_shapes(btntext_hover_border, btntext_hover_border_fill);
//---------------------------------------------------
draw_set_color(btntext_text_color);
//повсыетка текста?
if btntext_hover_text_highlighted == false then draw_text_transformed(x, y, btntext_text, text_scale_current, text_scale_current, 0);
else draw_text_transformed_highlighted(x, y, btntext_text_color, btntext_hover_text_highlighted_color, btntext_text, text_scale_current);
//---------------------------------------------------
//запуск скрипта на отпускание кнопки мышки над кнопкой
if mouse_check_button_released(mb_left) then
{
audio_play_sound(btntext_sound,0,false);
if script_exists(btntext_onClickAction) then script_execute(btntext_onClickAction);
}
}
else //***************************************************************************************************************************************
{ //мышка вне кнопки
//масштабируем текст кнопки к нормальному состоянию
text_scale_current = lerp(text_scale_current, text_scale_default, btntext_hover_text_scale_speed);
//---------------------------------------------------
draw_set_color(btntext_border_color);
draw_shapes(btntext_border, btntext_border_fill);
//---------------------------------------------------
draw_set_color(btntext_text_color);
if btntext_text_highlighted == false then draw_text_transformed(x, y, btntext_text, text_scale_current, text_scale_current, 0);
else draw_text_transformed_highlighted(x, y, btntext_text_color, btntext_text_highlighted_color, btntext_text, text_scale_current);
//---------------------------------------------------
};
//***************************************************************************************************************************************
/// @description Отображает кнопку фигурой
//Site: MidaDev.ru
//Author: Dimusikus
function draw_shapes(argument0, argument1)
{
//argument0 = тип фигуры
//argument1 = параметр fill
switch(argument0)
{
case "none": break;
case "rectangle":
draw_rectangle(bbox_left, bbox_top, bbox_right, bbox_bottom, !argument1);
break;
case "roundrect":
draw_roundrect(bbox_left, bbox_top, bbox_right, bbox_bottom, !argument1);
break;
case "circle":
draw_circle(x,y,(bbox_right - bbox_left) / 2, !argument1);
break;
case "triangle_up":
draw_triangle(bbox_left, bbox_bottom, mean(bbox_left,bbox_right), bbox_top, bbox_right, bbox_bottom, !argument1);
break;
case "triangle_down":
draw_triangle(bbox_left, bbox_top, mean(bbox_left,bbox_right), bbox_bottom, bbox_right, bbox_top, !argument1);
break;
};
}
Настройка кнопок осуществляется непосредственно в редакторе комнат.