c++ - Raylib cpp IsMouseButtonPressed 导致无限循环
问题描述
我正在使用 raylib 3.5.0,这是我的代码:
Vector2 startMousePos = GetMousePosition();
Vector2 endMousePos;
bool mousePressed = false;
while (1)
{
if (!IsMouseButtonPressed(MOUSE_LEFT_BUTTON))
{
break;
}
mousePressed = true;
endMousePos = GetMousePosition();
}
我想根据鼠标开始单击的位置和结束位置创建一条线,但此代码会导致无限循环。
解决方案
我发现我应该使用从文件顶部的函数声明中获得的 glfwPollEvents 函数,该声明是从 glfw 中提取的,因为 raylib 使用它来管理窗口。自己调用这个方法可能会妨碍 raylibs 输入处理,所以要小心。
extern "C" void glfwPollEvents(void);
我还将我的代码更改为(不,while(1) 不能替换为 while(!IsMouseButtonDown(MOUSE_LEFT_BUTTON))):
Vector2 startMousePos = GetMousePosition();
Vector2 endMousePos;
bool mousePressed;
while (1)
{
if (!IsMouseButtonDown(MOUSE_LEFT_BUTTON))
{
break;
}
else
{
glfwPollEvents();
if (!mousePressed)
{
mousePressed = true;
}
endMousePos = GetMousePosition();
}
}
推荐阅读
- ionic3 - Cognito 和 Ionic 3 - 让用户保持登录状态
- android - Codenameone - Android平板电脑上的应用程序崩溃并从下一次打开一个空白的黑屏
- sql - 从超过一年前的 SQL 数据库中搜索日期
- ionic3 - Angular 2 - 反应形式的密码验证
- java - Android Studio 中的 glTexImage2D 模拟器错误
- python - get_text 不适用于 div 标签
- r - 如何通过在 R 中有效地过滤和分组来对数据进行子集化
- php - 在 CQRS 应用程序中执行验证/不变量
- python - ModuleNotFoundError:没有名为“PyQt5.QtWebKit”的模块
- javascript - 在html中的div中显示文本