问题标签 [sdl-2]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
264 浏览

sdl - SDL 2 中类似 Flash 的事件绑定

我已经使用 SDL 和 PollEvent 方法工作了一段时间,它总是对我很有帮助。然而,在使用了基于 Flash 的引擎后,我尝试创建一个类似于我们在 Flash 中的事件侦听器系统。我在想这样的事情:(伪代码)

但是,我不确定如何以有效的方式进行这项工作。我可以在每一帧上运行 PollEvent,然后遍历场景中的整个 GameObjects 列表:如果在 PollEvent 上接收到的事件是 X,则调用 X 的所有侦听器。但是,这似乎真的很慢。有更好的方法吗?有没有人做过类似的事情?

0 投票
0 回答
164 浏览

c - SDL_ttf 表面与 OpenGL 纹理通道不匹配

我试图在我的游戏中从 SDL_ttf 表面制作 OpenGL 纹理以获得分数 GUI:

但它看起来像红色和 alpha 通道不匹配: 截屏

我试图使用 GL_BGRA 和 GL_ABGR_EXT 而不是 GL_RGBA,但它只会得到另一个通道不匹配。

0 投票
3 回答
7961 浏览

c++ - 如何在 SDL 2 中获取并保存 BMP 屏幕截图?

仅使用给定的 SDL_Window* 和 SDL_Renderer*,如何在 SDL 2.0 中创建和保存屏幕截图?

0 投票
1 回答
506 浏览

c++ - SDL 2 链接器错误

我一直在尝试使用 eclipse(kepler) 和 mingw 设置 SDL2。这是我要编译的代码,它似乎没有任何问题,没有编译错误。.exe 实际运行但没有响应(可能是因为它只是一个等待 2000 的节目),它也可以调试但我必须跳过这个: Can't find a source file at "e:\p\giaw\src\ pkg\mingwrt-4.0.3-1-mingw32-src\bld/../mingwrt-4.0.3-1-mingw32-src/src/libcrt/crt/main.c" 找到文件或编辑源查找路径包括它的位置。 我的机器上没有这条路径。

我希望有人遇到这个并有任何建议。

0 投票
1 回答
7773 浏览

c++ - 在 make 文件中链接 SDL_image

我的 Makefile -

我使用的代码取自教程-

我的错误 -

我无法加载它。我使用 brew 安装 SDL2_image ,它似乎存在于 usr/local/lib 等中。我看到 libSDL_image.a 和其他各种项目。

有人可以告诉我如何为 mac 编辑我的 makefile,以便我可以编译我尝试使用的代码。我不确定为什么 -lSDL_image 不能正常工作。

0 投票
0 回答
111 浏览

c++ - 记忆慢慢增加,然后稳定

我目前在最新版本的 OS X 上使用 SDL2 有一个相当小而简单的 C++ 应用程序。它真正做的唯一一件事是监听几个键盘事件并通过 SDL_Renderer 绘制一个未填充的白色方块。它使用 lambdas 处理每一帧的“滴答声”和渲染。

当我开始运行这个程序时,XCode 报告它几乎立即使用了大约 14.5MB 的内存。但随后内存使用量开始慢慢增加,随着时间的推移变得越来越慢。最终,几分钟后,它达到了 18MB 的总量,并且几乎保持在那里。有时它会达到 18.1,但最终会回落到 18。

这种行为让我感到困惑,因为除了开头之外,我没有在我的代码中分配任何东西。唯一使用新内存的地方是当我在渲染 lambda 的堆栈上分配 SDL_Rect 时,以及主循环中的几个整数/浮点数。即使我没有通过键盘、鼠标等触发任何 SDL_Events,也会发生这种情况。如果有人可以就为什么会发生这种情况提供任何建议,我将不胜感激。

请注意,这似乎不是内存泄漏或任何危险,主要是一个学术问题,我想了解正在发生的事情的行为。如果你想让我把我的代码放在某个地方,我可以。

0 投票
4 回答
2407 浏览

c++ - 将 const uint * 的值复制到 C++ 中的另一个变量

我想我有一个普遍的问题。

我目前正在学习 C++ 和 SDL 2.0。SDL 提供了一个函数,该函数返回一个指向包含所有键状态的 const uint * 的指针。

这些是我想使用的变量:

在我的 input.cpp 的构建中:

在我使用的 Update() 方法中:

但是,我没有复制最后一个值,而是提供一个指向 oldKeyState 的指针,该指针又指向当前的键状态。

那么如何将变量指针中的实际值复制到当前和旧的键状态呢?我不希望指针处于旧键状态,因为我将无法检查以前的状态是否为 UP 而新状态是否为 DOWN。

0 投票
1 回答
867 浏览

c - 关于尝试同步音频和视频

我有一个使用 SDL2/SDL_mixer 和其他几个声音库的小项目。我已经尝试了一段时间来同步我的音频和视频,但未能成功实现它。这些东西都是新手,所以请原谅穷人的逻辑和编码。起初我想在每帧之后将延迟设置为 SDL_Delay(30),然后在该范围内设置一些其他数字。不太对。然后我尝试通过获取 Ticks 来做到这一点。如果滴答声之间的增量<=30,我会得到current_ticks和last_ticks之间的差异并设置延迟,并将延迟设置为30-delta。仍然不太正确(到目前为止)。希望这里有更多经验的人可以指导我朝着正确的方向前进。关于视频,它当然是一个可视化工具,似乎是一个受欢迎的初学者项目。

0 投票
0 回答
630 浏览

c++ - 带有矩形数组的 SDL_RenderCopy

SDL_RenderCopy 只接受一个输入矩形和一个输出矩形。但是,如果我有很多想要填充的图像,我对 opengl 的了解告诉我,一次绘制所有图像的批量操作比每个精灵一次绘制调用要快得多。SDL_FillRects 已经有一个计数参数。但我找不到任何适合绘制大量精灵的东西。

SDL2中是否还有一些我仍然缺少的功能,因为我怀疑这种优化是否可以自动完成。

0 投票
1 回答
2417 浏览

opengl - SDL2 -Opengl 3.3+ 有什么问题?

这是我的代码:

我的问题是,除了清除的颜色之外,什么都看不到。它可能有什么问题?(并且当我初始化时没有错误或其他东西)我使用 Visual Stuido 2010 如果它很重要。