问题标签 [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 投票
1 回答
1970 浏览

c++ - SDL2 - 检查是否创建了 OpenGL 上下文

我正在使用 SDL2 和 OpenGL 创建一个应用程序,它在 3 台不同的计算机上运行良好。但是在另一台计算机(更新的 Arch linux)上,它没有,并且它因以下错误而崩溃:

所以我的问题是:如何检查是否已经创建了 OpenGL 上下文?然后,如果它已经创建,我如何获得它的句柄?

如果我不能这样做,我该如何绕过这个问题?

0 投票
1 回答
1211 浏览

c++ - exc_bad_access 错误 xcode5 c++ sdl2

我一直在玩弄这个代码,youtube 上的一个人附在他的一个教程视频中……我遇到了一些我似乎无法解决的问题……当前的问题是这个“EXC_BAD_ACCESS”错误。 ..根据我在网上简要研究的内容,当您不正确地使用堆栈并将内存分配给不再存在的东西或类似的东西时,就会发生这些错误......我只是无法准确指出我做错了什么...... . 我已经完成了一些故障排除——但对于 xcode 5 还没有

该错误出现在名为“cSprite.cpp”的类中:

... 'rect->x = x;' 行

得到我放在它旁边的错误...但是我知道还有什么可能导致它...我希望有人可以解释为什么甚至会发生 EXC_BAD_ACCESS 错误...和/或在我的其余代码中它可能来自哪里...

这是我的其他 3 个 .cpp 文件

……

……

……

...这是我的 cSprite.h 文件现在的样子:

0 投票
2 回答
2877 浏览

opengl - 渲染TTF SDL2.0 opengl 3.1

我正在使用 SDL2.0,并使用(半现代)opengl(3.1)。我正在寻找向我的应用程序添加文本覆盖,并在应用程序中呈现 TTF。我将如何使用现代 OpenGL 来解决这个问题?

编辑:根据 genpfault 的建议,我尝试使用 SDL_TTF 库,但我得到的只是屏幕上的垃圾http://i.stack.imgur.com/FqyCT.png 我附上了一个要点我的着色器,对于这个程序来说非常简单,还有我用来将文本加载到表面并将其绑定到纹理的剪辑。我根本不想在这里做任何疯狂的事情。你能看到我做错了什么吗?我不太确定如何调试着色器等。

https://gist.github.com/anonymous/7284430

0 投票
2 回答
2747 浏览

python - 使用 PySDL2 捕捉操纵杆事件

我正在使用 python 的新(ish)SDL2 包装器PySDL2,我似乎看不到事件队列上弹出任何操纵杆事件。Keydown 事件很好,当我明确地轮询操纵杆时,我可以很好地获得轴状态(并观察它随着我移动轴而改变,正如预期的那样)。这是我使用队列的代码:

这会打印出所有 keydown 事件,但不会打印出任何轴运动事件。相反,这是我明确轮询轴状态的代码:

哪个工作正常,但如果状态没有改变,我不想浪费时间轮询状态,所以如果我能让它工作,我更喜欢事件队列方法。有什么建议么?

如果重要的话,我在 Mac OS 10.9 上运行 python 2.7.5。我试过罗技 USB 游戏手柄和 Xbox 360 有线游戏手柄(通过 tattiebogle.net 驱动程序启用)。上面我讨论了轴事件,因为这是我需要的,但我已经检查过了,没有任何操纵杆事件发布到事件队列中。

0 投票
1 回答
3178 浏览

windows - 使用 Qt Creator 未定义对 SDL_Init 的引用

我正在尝试使用Qt Creator ( Qt 5.1.1 ) 构建以下基本 SDL2 应用程序。

SDLTest.pro:

主.cpp:

但我有以下错误:

具有相应参考的相同代码可以使用SDL 1.2编译。

任何想法?

0 投票
3 回答
12969 浏览

c - 如何使用 SDL 2.0 绘制正方形?

我想做一些简单的事情,比如使用 C 和 SDL 在屏幕上绘制一个正方形。我复制的示例不起作用。

它正确地将屏幕填充为白色,但在调用以下命令时失败SDL_Rect

如何使用 SDL 2.0 正确绘制正方形?

0 投票
1 回答
704 浏览

c++ - 如何避免 SDL 2 游戏中的运动模糊?

我正在使用 SDL 2 制作游戏,每当屏幕上出现移动时,它就会变得模糊。我试图在屏幕截图上捕捉到它,但我似乎无法捕捉到它。我的问题是:是因为游戏还是因为我的显示器。当我以 230 FPS w/o V-Sync 运行游戏时以及使用 V-Sync 以 60 FPS 运行游戏时,都会出现模糊。PS 显示器刷新率:60 Hz

0 投票
3 回答
2666 浏览

c++ - 如何从许多纹理(C++,SDL 2)的一部分创建一个位图?

我有 *.png 文件,我想从纹理中获取不同的 8x8 px 部分并将它们放在位图上(我猜是 SDL_Surface,但也许不是),就像这样:

图片。

现在我在没有位图的情况下渲染它,即我调用每个纹理并直接在屏幕上每一帧绘制部分,它太慢了。我想我需要加载每个 *.png 来分隔位图并使用它们传递视频内存,然后只调用一个大位图,但也许我错了。我需要最快的方法,我需要这样的代码(SDL 2,而不是 SDL 1.3)。另外,也许我需要在这里使用清晰的 OpenGL?

更新:
或者我可能需要以某种方式将 *.png 加载到 int 数组中并像通常的数字一样使用它们并将它们放置到一个大 int 数组中,然后将其转换为 SDL_Surface/SDL_Texture?这似乎是最好的方法,但是如何写呢?

更新2:
每个块中像素的颜色与图片中呈现的颜色不同,它们也可以是透明的。图片只是一个例子。

0 投票
2 回答
2189 浏览

c++ - 如何在 SDL 2.0 中清除屏幕的一部分

所以,目前我正在写一个游戏,我有一个小纹理(20x20),可以填满屏幕(1680x1050)。我的玩家在这个背景上移动,都在游戏循环中。我需要我的背景是静态的并且只绘制一次,但是 SDL_RenderClear 会重绘所有区域,这会导致滞后。我怎样才能画一次,然后用我的玩家人物更新它?

0 投票
2 回答
1346 浏览

python - PySDL2 和 SDL_GetKeyboardState

我正在尝试通过 PySDL2(当前版本 0.7.0;/文档)学习 SDL。它为(我假设)所有 SDL 的普通函数提供了一个ctypes Python 包装器,并通过其包提供了更多 Pythonic 函数sdl2.ext来处理细节并以 Python 类型返回结果。例如,sdl2.ext.get_events()将调用sdl2.SDL_PumpEvents(),然后查看队列中的所有事件并将它们作为 Python 列表返回。

但是,我不知道是否存在这样的便利功能SDL_GetKeyboardState()。该函数的官方SDL Wiki 文档将其定义为:

其中 numkeys 可能为空(否则它将接收返回数组的长度),返回的 Uint8* 是指向键状态数组的指针,由 SDL_Scancode 值索引,如果键按下则保持 1,否则保持 0起来了。

PySDL2 确实通过 提供了对 SDL_GetKeyboardState 的直接调用sdl2.keyboard.SDL_GetKeyboardState(numkeys),但它返回的 ctypes 值不会立即有用。

所以我的问题是,是否有更多 Pythonic 函数可以通过 PySDL2 获取当前 SDL 键盘状态?如果有,它是什么以及应该如何使用?如果没有,是否应该提交一份?

作为参考,我想我自己想出了如何实现这个功能,但这是对 ctypes 的粗略洗礼,所以我可能会弄错一些东西: