Включение мыши в Allegro5 - PullRequest
0 голосов
/ 28 ноября 2018

Я начинаю использовать Allegro в моей программе на C, но у меня возникают трудности при создании кнопок.Я использую такую ​​логику:

if (event.type == ALLEGRO_EVENT_MOUSE_BUTTON_UP)
{
      if ((event.mouse.x >= 442) &&(event.mouse.x <= 471) &&(event.mouse.y >= 202) &&(event.mouse.y <= 238))
            {
                dig = '1';
                entr = 1;
            }

Но эти пробелы, определяемые осью, не «кликабельны». У кого-нибудь здесь есть несколько советов по поводу опечатки команды, которую я должен использовать?

1 Ответ

0 голосов
/ 22 марта 2019

Я могу только догадываться, что было не так, но ответа пока нет, поэтому я дам несколько советов о возможной проблеме.Ваша тема называется разрешением мыши в allegro 5, так что я могу только предположить, что вы не получаете ввод мыши.

1) Вам необходимо установить драйвер мыши, прежде чем вы получите какой-либо ввод мыши:

if (!al_install_mouse()) {Fail();}

2) Мышь должна быть зарегистрирована в вашей очереди событий.

al_register_event_source(event_queue , al_get_mouse_event_source());

В типичном графическом интерфейсе большинство кнопок рассматриваются только«нажата», если они получают как событие нажатия кнопки мыши над своей областью щелчка, так и событие нажатия кнопки мыши над той же областью.Таким образом, вы не получаете нажатие кнопки, когда нажимаете на что-то другое, перемещаете мышь над кнопкой и отпускаете ее.Вы также не позволяете событиям нажатия кнопки мыши перемещать ее за пределы области щелчка и отпускать ее.

...