Суть такова. Изначально каждую кнопку на экране я расписывал в скрипте по отдельности. Но кнопок этих становится всё больше и по этому сделал создание кнопки отдельным скриптом. Изначально, когда кнопки были расписаны по отдельности они функционировали нормально. Я использовал функцию mouse_check_button_pressed и всё было окей. Теперь же когда кнопка в скрипте расписана, то при нажатии на неё, кнопка срабатывает не один раз при нажатии, а до тех пор пока кнопка мыши не будет отпущена. Посоветуйте как это исправить, желательно в самом скрипте.
Скрипт кнопки
Код
//scr_draw_button(x,y,spr_in,spr_pressed,spr_default,inverse)
var bt_sprite, inverse, inverse_move, result; //переменная рисуемого спрайта, зеркальность спрайта, сдвиг при зеркальности, результат действия на кнопку
if argument5 = true {inverse = -1 inverse_move=1} else {inverse = 1 inverse_move=0}; //проверка нужно ли зеркалить спрайт кнопки
проверка положения и нажатия кнопок мыши.
switch(scr_mouse_rect(argument0,argument1,argument0 + sprite_get_width(argument4)*global.resize, argument1 + sprite_get_height(argument4)*global.resize))
{
case 1: bt_sprite = argument2 result=1; break; //курсор наведён на кнопку
case 2: case 3: bt_sprite = argument3 result=2; break; //произошло нажатие ПКМ
default: bt_sprite = argument4 result=4; break; //никаких взаимодействий с кнопкой.
}
draw_sprite_ext(bt_sprite,-1,argument0 + ((sprite_get_width(bt_sprite)*global.resize)*inverse_move) ,argument1,(1*global.resize)*inverse,1*global.resize,0,c_white,1) //отрисовка кнопки
return result;//скрипт возвращает результат взаимодействия с кнопкой
И сама кнопка в Draw
Код
bt_act = scr_draw_button(0,0,spr_action_bt_in,spr_action_bt_pressed,spr_action_bt,false) //создание кнопки
if bt_act = 2 //если кнопка нажата, происходит действие в скобках.
{
if action_menu = true then action_menu = false else action_menu = true
}
Я надеялся что со скриптом код будет менее заграмождённым, а всё может выйти на оборот.