0
我正在使用GLFW爲我的3D遊戲引擎製作一個GUI系統,而且我需要像我的按鈕這樣的UI對象僅在單擊它們時執行其功能。單擊不用鼠標拖動在GLFW
該程序檢查用戶是否通過檢查光標的座標點擊按鈕的區域,但問題是,如果用戶在按鈕區域內單擊並拖動,則重複調用該按鈕的功能。有沒有辦法阻止它?
void ui_Button::click(void (*f)())
{
if (mouseX >= pPosX && mouseX <= pWidth && mouseY >= pPosY && mouseY <= pHeight && glfwGetMouseButton(window, GLFW_MOUSE_BUTTON_LEFT))
{
(*f)();
}
}
另一種選擇,我想,但不知道怎麼做是有點擊和按鈕或UI對象上釋放鼠標時按鈕的功能工作。
單擊布爾'clicked'設置爲true,釋放時爲false,並且只有當它爲false時才調用按鈕函數。 – Appleshell
@AdamS在按住lmb的同時將鼠標拖過按鈕時,會導致該按鈕被按下。 – Cubic
我忘了提及在循環中調用代碼,所以它會導致按鈕功能始終運行 – Polar1ty