gpt4 book ai didi

c++ - 在 GLFW 中单击无需鼠标拖动

转载 作者:行者123 更新时间:2023-11-28 06:55:12 25 4
gpt4 key购买 nike

我正在使用 GLFW 为我的 3D 游戏引擎制作一个 GUI 系统,我需要我的 UI 对象(例如我的按钮)仅在单击一次时执行它们的功能。

程序通过检查光标坐标来检查用户是否在按钮区域中单击,但问题是如果用户在按钮区域内单击并拖动,则会重复调用按钮的函数。有办法阻止这种情况吗?

void ui_Button::click(void (*f)())
{
if (mouseX >= pPosX && mouseX <= pWidth && mouseY >= pPosY && mouseY <= pHeight && glfwGetMouseButton(window, GLFW_MOUSE_BUTTON_LEFT))
{
(*f)();
}
}

我正在考虑但不知道如何做的另一个选项是当鼠标在按钮或 UI 对象上单击和释放时让按钮的功能起作用。

最佳答案

执行此操作的正确方法是使用 glfwSetMouseButtonCallback 安装鼠标监听器,该监听器保留对鼠标按键感兴趣的事物列表,并通知它们(基本上,就像观察者模式一样) .

关于c++ - 在 GLFW 中单击无需鼠标拖动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23277094/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com