- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在阅读一本有关SDL的介绍性书籍代码,并且有这样的示例代码:
void Game::handleEvents()
{
SDL_Event event;
if (SDL_PollEvent(&event))
{
switch (event.type)
{
case SDL_QUIT:
m_bRunning = false;
break;
default:
break;
}
}
}
我知道这将查看事件队列,如果有任何内容,检索它并将其运行到 switch 语句。在我添加此代码之前,窗口已显示,但您无法拖放、关闭或调整窗口大小。现在我添加了这段代码,我可以关闭我所期望的窗口。我没想到的是我可以拖放窗口。
我认为这将是一个单独的事件,我需要在将来包含在 switch 语句中。为什么拖放也有效?它是 SDL_PollEvent(因为我评论了 switch 语句但留下了“如果”,我仍然能够拖动)但这是为什么呢?另外,为什么只有拖放自动起作用?为什么不调整大小?
最佳答案
我们不需要处理所有事件,一些 SDL 会为我们处理。与窗口属性相关的事件将自动处理。为了调整窗口大小,您必须在创建窗口时添加标志 SDL_WINDOW_RESIZABLE。虽然 SDL 会处理窗口的实际大小调整,但它可能仍需要一些事件处理,因为要绘制的表面大小不同,它不会自动调整我们尝试在其中绘制的任何图像的大小。
虽然我没有在文档中找到关于为什么 SDL_PollEvent 的行为如您上述描述的答案,或者如果这是有意为之的行为,它在不同系统上的工作方式略有不同。在 osx 上,可以在没有上述功能的情况下移动窗口,但不会显示关闭的 X。再次添加该函数,可以正常移动、最小化和关闭窗口。
根据 documentation ,SDL_PollEvent 旨在执行您描述的操作,查看是否有任何事件并检索它们。
关于c++ - SDL_PollEvent 有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42535126/
今天有小伙伴给我留言问到,try{...}catch(){...}是什么意思?它用来干什么? 简单的说 他们是用来捕获异常的 下面我们通过一个例子来详细讲解下
我正在努力提高网站的可访问性,但我不知道如何在页脚中标记社交媒体链接列表。这些链接指向我在 facecook、twitter 等上的帐户。我不想用 role="navigation" 标记这些链接,因
说现在是 6 点,我有一个 Timer 并在 10 点安排了一个 TimerTask。之后,System DateTime 被其他服务(例如 ntp)调整为 9 点钟。我仍然希望我的 TimerTas
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我就废话不多说了,大家还是直接看代码吧~ ? 1
Maven系列1 1.什么是Maven? Maven是一个项目管理工具,它包含了一个对象模型。一组标准集合,一个依赖管理系统。和用来运行定义在生命周期阶段中插件目标和逻辑。 核心功能 Mav
我是一名优秀的程序员,十分优秀!