问题标签 [sdl]

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 回答
2948 浏览

c++ - 游戏引擎地图编辑器。SDL->wxWidgets

我一直在编写一个 OpenGL 游戏引擎,它使用 SDL 进行所有窗口管理和可移植性。我想使用完整的引擎创建一个关卡编辑器。除了输入之外,引擎本身与 SDL 完全不相关。我想将 wxWidgets 用于 GUI,并且我一直在查看一些非常简单易懂的 OpenGL 示例。

尝试将 SDL 与 wxWidgets 集成并同时使用或在它们之间切换以用于不同的应用程序会更简单吗?在两个系统之间切换的最佳方式是什么?

0 投票
7 回答
1228 浏览

c++ - 这段代码是什么意思?

这是 SDL 在 Visual Studios 2005 中需要的一些代码,以便我的简单程序能够运行。代码在做什么?我拥有它的唯一原因是因为我的导师告诉我把它放进去,但从未解释过。

0 投票
5 回答
2855 浏览

c++ - 游戏中的 Unicode 输入处理

我有一个游戏要求我允许玩家通过网络互相聊天。一切都很好,除了玩家可以输入 Unicode 输入的部分。

所以,这个问题可以分为两部分:

  • 当玩家打字时,我如何捕捉输入?我之前通过游戏输入处理(轮询)完成了此操作,但是,它不如 Windows 窗体之类的响应速度快。

  • 将输入捕获到字符串后,如何使用 TrueType 字体输出?我问这个的原因是因为通常我会在游戏开始时从游戏中使用的所有文本构建位图字体。但是使用 unicode 输入,需要将近 10k 个字符,这在游戏开始时是完全不可能构建的。

PS 我的目标输入语言更具体为中文、韩文和日文。

0 投票
6 回答
3382 浏览

opengl - OpenGL绝对坐标

我对创建游戏非常陌生(并且通常在 OpenGL 中工作)。我正在尝试制作 2D 游戏,但在尝试进行碰撞检测时遇到了一个绊脚石。

例如,我平移当前矩阵,旋转并再次平移,然后绘制一个点。我怎么知道那个点相对于我可能画的其他东西在哪里?

有没有办法从当前矩阵计算“绝对”坐标?

请尽可能简单地解释!谢谢 :)

0 投票
1 回答
702 浏览

c++ - SDL:初始化 TTF 问题。可能是自由字?

编辑:看下面的评论。简短版:当我尝试运行程序时,屏幕只是闪烁。

0 投票
2 回答
2939 浏览

c++ - 尝试使用 SDL_WINDOWID 在 QT4 中制作 SDL 小部件,但无法显示小部件

我正在尝试在一个简单的 QT4 窗口内创建一个 SDL 绘图画布,遵循SDL wiki中提供的信息和本网站上的另一个问题。该项目是一个使用 QT 和 SDL 的 NES 模拟器,我和朋友决定尝试创建它。

目前,我有一个 main_window 类,它将包含 SDL 小部件、我设置的菜单以及项目开发过程中可能的其他内容。我正在创建的 SDL 小部件称为 rom_canvas,它继承自 QWidget。到目前为止,我能够设置 SDL_WINDOWID 环境变量,并且我似乎能够与小部件进行交互,因为我可以设置并获取它的几何形状并看到它实际上是“可见的”,但实际上没有任何东西显示在窗户。

到目前为止,我对 QT4 和 SDL 没有任何经验,也没有大量的 C++ 经验,所以我可能会遗漏一些明显的东西。

这是 rom_canvas 类:

这是 main_window 构造函数:

代码有点乱,因为我一直在尝试让它工作。任何帮助当然都非常感谢。

0 投票
2 回答
2122 浏览

c++ - SDL 中的动态纹理加载

我在 SDL 中打开纹理时遇到问题。我有一个功能来读取 bmp 文件,优化它们并添加颜色键:

}

效果很好。然后我像这样加载我的所有纹理,这也有效:

但我希望能够通过某种数据文件来控制这些东西。所以我写了一个函数来解析一个csv文件。然后我得到值并尝试读取 bmp 文件,如下所示:

}

这工作得很好,它记录了实际存在的文件的路径,我已经仔细检查了每个文件。但是 SDLS.LoadImage() 调用无论如何都会失败并且程序崩溃。如果我注释掉那条线,那一切都很完美,只是在瓷砖应该在的地方没有渲染任何东西。但是当我手动加载它们时文件就在那里并且可以工作,并且在我尝试调用 SDL_DisplayFormat() 之前初始化了 sdl,所以我不知道这有什么问题:(

编辑:请注意不要让人们感到困惑;SDLStuff 类使用纹理指针的缓存。这样我就可以遍历缓存,通过调用 SDLStuff 中的一个函数来释放所有加载的纹理。

0 投票
2 回答
1968 浏览

c++ - 数据结构成员的成员初始化

我刚刚遇到了一个很容易解决的尴尬问题,但不是我喜欢做的。在我的类的构造函数中,我正在初始化数据成员的数据成员。这是一些代码:

但是,我收到一个编译器错误说:

以这种方式初始化成员是否有问题,我是否需要切换到构造函数主体中的赋值?

0 投票
4 回答
13503 浏览

c++ - 对于 C++ 的 SDL,是否有更快且面向对象的替代方案?

当前版本的 libsdl(1.2.x 分支)在混合和每像素 alpha 方面非常非常慢(因为它使用软件混合)。还有其他好的选择吗?

0 投票
2 回答
1043 浏览

java - Java 和 SDL_GetKeyState()

我正在尝试将一些使用 SDL 的代码转换为 Java。我正在使用 sdljava 绑定。

sdljava 使用 SWIG 作为 C 数据类型和 Java 之间的桥梁。为了得到 的等价物SDL_GetKeyState(),sdljava 提供了方法SWIG_SDLEvent.SDL_GetKeyState(),它返回一个叫做 a 的东西SWIGTYPE_p_unsigned_char

当然,Java 没有unsigned char类型,我不知道编译器认为这种 SWIG 类型实际上对 Java 代表了什么。在 C/C++ 中的正常使用SDL_GetKeyState()类似于:

...其中 SDL 键状态值(如 SDLK_UP)索引到数组中。

但是,以下 Java 代码:

导致编译器错误,“表达式的类型必须是数组类型,但它解析为 SWIGTYPE_p_unsigned_char。”

我想知道的是,在调用 SWIG_SDLEvent.SDL_GetKeyState() 之后,您如何使用它返回的内容来检查各个键的状态?