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

c++ - 我无法让图像中的透明度起作用

源于我的这个问题:我在尝试旋转图像时看到了伪影

在那里的源代码中,我正在加载 TIF,因为我一生都无法获得任何其他图像格式来正确加载透明度部分。我试过 PNG、GIF 和 TGA。我希望能够加载 PNG。我希望上面问题中给出的源代码就足够了,如果没有,请告诉我。

为了更好地描述当我尝试加载其他格式时会发生什么——我尝试的图像之一是 128*128 橙色三角形。根据格式的不同,它要么将整个 128*128 正方形变为橙色,要么将图像的透明部分变为白色。

0 投票
1 回答
476 浏览

opengl - SDL\OpenGL Window & Widget 库的设计问题

我想为在 SDL 之上运行的 OpenGL 设计和实现一个简单的窗口和小部件,就像 Agar 或 GiGi,只是更接近于 SDL 和 OpenGL。

我的一般问题是: OpenGL 上下文的窗口系统的最佳设计是什么?

我想要只用于控件的窗口,如果可能的话,还有带有自己的 OpenGL 上下文的线程窗口。我认为它甚至可能的唯一方法是渲染纹理,然后他们在这些周围添加窗口装饰......

我想将工作原理暴露给其他程序员,但哪种方式最好。我更像是一个 C++ 程序员,所以继承是我想到的第一种方式。创建我在共享头文件中公开的基本类,然后程序员从中派生自己的窗口对象,覆盖 Init() 或 Run() 方法来实现他们需要的东西。这种方法的问题是要控制程序员,没有真正的方法可以“阻止”他们在 OpenGL 屏幕中简单地绘制他们想要的任何位置。

另一种可能的方法是函子,将程序员想要使用的函子传递到库中,然后在完成渲染它的 GUI 组件和其他内容后调用它。

解决这些问题的最佳方法是什么?

0 投票
6 回答
3013 浏览

c++ - 为太空模拟器/游戏旋转宇宙飞船模型

我一直在研究太空模拟游戏。起初,我使用自己的 3d 引擎和软件光栅化器。

但是当实现纹理的时间到期时,我放弃了。现在我在一段时间后重新开始,现在我使用 Opengl(带有 SDL)来渲染 3d 模型。

但现在我撞到了另一堵砖墙。

我不知道如何进行适当的旋转。作为一个太空模拟器,我想要与飞行模拟类似的控制

使用

或类似的,
如果我先将模型(宇宙飞船)向左旋转 90 度然后将其“向上”旋转,则无法正常工作。相反,它滚动。

这是说明我的问题的图像。

图片链接

我尝试了几种技巧来尝试解决这个问题,但不知何故我觉得我错过了一些东西。几乎不可能找到模拟器风格的旋转示例也无济于事。

所以我正在寻找示例、链接和旋转 3d 模型(如宇宙飞船、飞机)的理论。

我是否应该使用 3 个向量(左、上、前)作为方向,因为我还必须计算诸如推进器的加速度之类的东西,这些东西会随着旋转(方向?)和模型中的视角点而改变像火箭发动机一样的方向。

我对数学不是很好,试图想象一个解决方案只是让人头疼

0 投票
2 回答
1226 浏览

c++ - Linux 上的 SDL OpenGL 新手,这有什么问题?

我已经编写了一些代码来在 Ubuntu 上进行 opengl 编程实验,已经有一段时间了,但我曾经对 C 有合理的理解。因为我被告知 c++ 是游戏编程的首选语言,我正在尝试用它来开发.

这是我第一次真正尝试使用 sdl 进行 opengl,我已经走到了这一步,它可以编译并运行,但我的相机功能似乎没有做任何事情。我知道可能有很多更好的方法来做这类事情,但我想先了解基础知识,然后再转向更高级的事情。

主文件

生成文件

它编译并运行,我想我只需要一些帮助来进行相机翻译。谢谢

0 投票
5 回答
25810 浏览

c++ - 如何使用 SDL 一次处理多个按键?

让自己熟悉使用 C++ 在 Ubuntu 上使用 SDL 进行 OpenGL 编程。经过一番环顾和试验,我开始明白了。我需要有关使用 SDL 处理键盘事件的建议。

我有一个第一人称相机,可以前进,后退,左右扫射,并使用鼠标环顾四周,这很棒。这是我的 processEvents 函数:

现在,虽然这是有效的,但它有一些限制。最大的问题和我的问题的目的是它似乎只处理按下的最新键。因此,如果我按住 's' 向后走,然后按 'd' 向右扫射,我最终会向右扫射但不会向后走。

有人可以为我指出正确的方向,以便使用 SDL 更好地处理键盘、一次支持多个按键等吗?

谢谢

0 投票
2 回答
3880 浏览

c++ - 如何在 C++ 中使用 sdl、opengl 移动相机时修复奇怪的相机旋转

我有一个相机对象,它是我在网上阅读时拼凑起来的,它可以处理前后移动、左右扫视,甚至用鼠标环顾四周。但是当我向任何方向移动时,试着环顾四周,它会到处乱跳,但是当我不动并环顾四周时,它就很好。

我希望有人能帮我弄清楚为什么我可以同时移动和环顾四周?

主文件

相机.cpp

和mousemotion代码

0 投票
3 回答
2702 浏览

linux - 支持 SDL 且没有 XWindows 的最小 Linux 发行版?

我想设置一个 x86 Linux Box,这样:

  • 它使用最少的系统资源。
  • 运行 SDL,无需 XWindows
  • 包括足够的功能来运行 QEmu。

基本上我只是希望它只是一个虚拟化主机,并且尽可能“瘦”,几乎所有资源都可用于“客户端”操作系统或操作系统。

是否有类似的东西可用于 x86,是否有一种直接的方法可以在没有 X-Windows 的情况下运行 SDL。

编辑:

哦,是的,感谢 Sleske 的信息!帧缓冲区评论为我指明了正确的方向!对于其他感兴趣的人来说,http://www.linux-fbdev.org看起来很有希望!我现在只需要弄清楚如何为 FB 访问配置 SDL。

皮特

0 投票
1 回答
166 浏览

c++ - 将项目移植到我的笔记本电脑会导致空白屏幕

所以我正在使用 SDL 在 openGL 中制作一些东西。我即将进行长途飞行,但我似乎无法让该项目在我的笔记本电脑上运行。我以前在笔记本电脑上使用过 SDL,所以我认为这是 openGL 的错。笔记本电脑是win xp pro,并有一个intel 945 图形“卡”。我已经尝试更新驱动程序,但无济于事。我使用的图像不会是问题,因为我已对其进行了编码,因此如果找不到文件,程序将关闭。此外,编译时我完全没有错误,它只是创建了窗口,而不是我的所有图像,我得到了白色。只是白色。

有任何想法吗?拜托,我不想在这 5 小时的航班上发疯 =/

0 投票
4 回答
1692 浏览

linux - 从场景图引擎开始还是直接使用opengl?

我是一名专业的开发人员,主要使用 Java,但在业余时间我喜欢玩不同的语言和库。问题是我想开始学习如何开发支持 3D 的应用程序或游戏。那里有很多引擎,但我担心直接使用这些引擎我将无法学习 3d 开发的基础知识,因为它们的水平很高。

我应该使用场景图引擎、SDL 之类的库开始编程,还是直接使用 opengl?

我在 linux 上进行所有开发,但我希望我开发的东西是跨平台的。

0 投票
2 回答
214 浏览

windows - 创建嵌套的opengl画布的最佳方法是什么

我想编写一个在给定窗口句柄上绘制一些 opengl 的库。

如何在给定窗口内初始化 opengl-context?是否可以使用 SDL 或其他库独立于该平台?