我开始在我的C程序中使用Allegro,但我在创建按钮时遇到了困难。我使用的是这样的逻辑:
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;
}但是这个由轴定义的空格是不可点击的。这里有人有一些关于我应该使用的命令拼写错误的提示吗?
发布于 2019-03-22 22:24:00
我只能猜测哪里出了问题,但还没有答案,所以我将提供一些关于可能的问题的提示。你的线程标题是在allegro 5中启用鼠标,所以我只能假设你没有得到鼠标输入。
1)您需要安装鼠标驱动程序,然后才能获得任何鼠标输入:
if (!al_install_mouse()) {Fail();}
2)鼠标需要注册到您的事件队列中。
al_register_event_source(event_queue , al_get_mouse_event_source());
在典型的GUI中,大多数按钮只有在其单击区域同时接收到鼠标按键按下事件和鼠标按键释放事件时才被视为“按下”。这样,当你点击其他东西时,你就不会按下按钮,而是将鼠标移到你的按钮上并松开它。您还可以防止按钮事件按下鼠标、将鼠标移出单击区域并释放鼠标。
https://stackoverflow.com/questions/53527454
复制相似问题