sdl相关内容

为什么我的 unique_ptr 认为它有一个空函数指针删除器?

我正在尝试使用 C++ 学习 SDL.我已经创建了一个 window.h 头文件和一个 window.cpp 源文件来存储一个 Window 类.在 window.h 中,它看起来像这样: 类窗口{上市:窗户();...私人的:std::unique_ptr窗户;std::unique_ptr渲染器;...} 省略了类中的一些代码.然后,在我的源文件中,在默认构造函数的定义中,我这样做: W ..
发布时间:2021-07-17 19:31:39 C/C++开发

通过采用 void * 的 C 接口传递 shared_ptr

我有一个使用 SDL 的 C++ 项目,特别是 SDL 事件.我想将事件系统用于传入的网络消息,就像它用于 UI 事件一样.我可以定义新的事件类型并附加一些任意数据(请参阅此示例).如果我使用普通指针,我会这样做: Uint32 message_event_type = SDL_RegisterEvents(1);/* 在主事件循环中 */而 (SDL_Poll(&evt)) {如果(evt.t ..
发布时间:2021-07-17 19:31:26 C/C++开发

如何禁用 SDL2 中的重复键?

在 SDL 中曾经有一个名为 SDL_EnableKeyRepeat() 的函数,但在 SDL2 中不再有. 我在 SDL2-wiki 中四处搜索,但未能找到任何相关内容. 有什么想法吗? 解决方案 在处理键盘事件时,只需过滤掉任何重复事件,即检查 的 repeat 字段SDL_Event 联合的 SDL_KeyboardEvent. 例如: SDL_Event 事件; ..
发布时间:2021-07-17 19:31:20 其他开发

如何在 SDL 中创建颜色渐变

SDL 没有这样的功能,很好奇过去是否有人这样做过并且不介意将我引向正确的方向.我想在两种颜色之间创建一个渐变,以反映在矩形的高度上. 解决方案 只需在所需的 y 位置上循环,您可以: 通过在渐变的端点颜色之间进行插值来计算所需的颜色. 调用 SDL_SetRenderDrawColor() 来设置颜色. 调用 SDL_RenderDrawLine() 在当前 y 位置绘制一条水 ..
发布时间:2021-07-17 19:31:18 其他开发

使用 Win32/SDL 将全屏窗口移动到辅助监视器

我使用的是 SDL 1.2.14,我发现我需要能够选择哪个监视器获得全屏窗口.使用 Xorg,我发现 Xinerama 可以使用 SDL_VIDEO_FULLSCREEN_HEAD 环境变量来完成这项工作,但是,我一直无法为 Win32 找到类似的东西. 全屏窗口总是在主显示器上创建,而且由于 SDL 1.2 没有(SDL 1.3 可以,但它不稳定)提供 API 来选择在 Win32 上使用 ..
发布时间:2021-07-17 19:31:11 其他开发

SDL 中的 Blit 是什么?

在 SDL wiki 中,它说 使用此函数执行从源表面到目标表面的快速 blit. 然而这对我帮助不大. 在这种情况下,术语表面 blitting 是什么意思? 解决方案 基本上这意味着将图像从一个表面复制到另一个表面 - 可能被裁剪和移动. ..
发布时间:2021-07-17 19:31:09 其他开发

如何将 SDL 与 Visual Studio 2019 链接

我不知道如何将库与 Visual Studio 2019 链接(我使用的是 Windows 10),我如何链接库? 解决方案 我假设与 VS 2017 中的相同. 项目/“您的项目名称"属性.../ 在配置选择所有配置 然后 项目/“您的项目名称"属性.../配置属性/VC++目录/ 在包含目录添加到您的 SDL include 文件夹的路径 在 Libra ..
发布时间:2021-07-17 19:31:06 其他开发

每帧多次调用 SDL_SetTextureColorMod 是否安全/可接受?

作为渲染除颜色以外的多个相同纹理的简单方法,我将一个纯白色圆圈加载到 SDL_Texture 中,然后调用 SDL_SetTextureColorMod() 给它我想制作圆圈的颜色. 如果纹理是单独的(示例 1),这一切都很好,但如果我共享 SDL_Texture 以便多个对象都引用它,则意味着 SDL_SetTextureColorMod() 必须在对象渲染纹理之前的每个渲染帧调用,因为它 ..
发布时间:2021-07-17 19:31:03 其他开发

在 C 中学习 SDL

我了解 C 的基础知识,并且正在研究 SDL.我现在需要的是一些教程、文档或者可能是一本关于在 C 中使用 SDL 库的书,尤其是关于图形的. 问题是我找到的每个在线资源都涉及 C++,而我正在寻找 C 语言的资源. 我查看了 gpwiki.org,它有一整个关于 C 的部分,但 mingw 不会编译它,因为其中一些包含是 C++ 库(我只安装了 C 编译器).其他来源如 sol.gf ..
发布时间:2021-07-17 19:31:00 其他开发

SDL_PollEvent 与 SDL_WaitEvent

所以我正在阅读这篇文章,其中包含“SDL 中多线程编程的提示和建议" - https://vilimpoc.org/research/portmonitorg/sdl-tips-and-tricks.html 它谈到 SDL_PollEvent 效率低下,因为它会导致 CPU 使用率过高,因此建议改用 SDL_WaitEvent. 它显示了两个循环的示例,但我看不出这将如何与游戏循环配 ..
发布时间:2021-07-17 19:30:57 其他开发

如何修复我的 raycaster 中的翘曲墙?

我正在使用带有 C 的 SDL 库编写光线投射器.我已经处理鱼眼效应好几个星期了.对于像 60 度这样的视野,我将到墙壁的距离乘以相对角度的余弦(范围从 -30 到 30),但仍然得到相同的鱼眼.看起来像这样: 我现在不知道该怎么做,因为很多来源都推荐了余弦校正,但它并不能解决我的情况. 我是这样编译的:clang `pkg-config --cflags --libs sdl2` r ..
发布时间:2021-07-17 19:30:48 其他开发

如何修复光线投射器中的扭曲透视?

我正在使用 SDL 的 C API 编写光线投射器.我花了数周时间试图修复臭名昭著的鱼眼效应,但无济于事.根据 this 来源,我可以将计算的距离乘以一半的余弦的 FOV 来修复它.这对我不起作用.尽管如此,我的代码中仍然有余弦校正. 这里有两张图片展示了失真: 我认为我的代码的一个核心问题可能是我的角度增量是恒定的,而增量应该更小,因为我更接近屏幕边界.不幸的是,我不知道如何开始实施 ..
发布时间:2021-07-17 19:30:42 其他开发

关于 SDL_Window 和 unique_ptr 的几个问题

我目前在将 SDL_Window 指针存储为 std::unique_ptr 时遇到问题. 我尝试的是: std::unique_ptr窗户_; 解决办法: std::unique_ptr窗户_; 第一次尝试在内存头中不断抛出错误,说 SDL_Window 是一个不完整的类型.好吧,我知道 SDL_Window 是一个结构体,不能用 实例化 SDL_Window* window_ = ..
发布时间:2021-07-17 19:30:37 C/C++开发

如何在 Windows 上静态编译 SDL 游戏

我一直在尝试为我的 Windows 游戏制作一个静态链接的“单一二进制"版本.我想与 sdl、sdl_image 和 sdl_mixer 链接,它们又会引入一些支持库.不幸的是,我还没有找到一种方法让它们全部使用 cygwin/mingw/gcc 进行编译和链接.据我所知,所有现有的公共版本都只是共享库/dll. 请注意,我在这里不是在谈论许可.源将是开放的,因此与 sdl 的 GPL/LG ..
发布时间:2021-07-17 19:30:31 其他开发

在 Visual Studio 2010 中使用 SDL_image,出现错误“应用程序无法正确启动 0xc000007b"

我正在尝试在此处进行 SDL 教程 http://lazyfoo.net/SDL_tutorials/lesson03/windows/msvsnet2010e/index.php 我做了他们要求我做的所有事情,一切都正确构建,但是当我尝试运行可执行文件时,我总是收到错误消息:“应用程序无法正确启动 0xc000007b" 我在 Mac(训练营)上使用 Win7,带有 Visual s ..
发布时间:2021-07-17 19:30:28 C/C++开发

SDL2 主游戏循环

在lazyfoo.net 上阅读有关SDL2 的教程时出现了我的问题,并且正在从此页面 int main( int argc, char* args[] ){//启动SDL并创建窗口如果( !init() ){printf("初始化失败!\n");}别的{//加载媒体如果( !loadMedia() ){printf("加载媒体失败!\n");}别的{//主循环标志布尔退出=假;//事件处理程序 ..
发布时间:2021-07-07 19:19:18 C/C++开发

如何在 SDL2 中旋转矩形?

我打算制作一款游戏,我想为该游戏制作一些背景动画.这些动画之一是旋转矩形.我已经翻遍了所有内容,但找不到任何形式的数学或逻辑可以让我旋转矩形(具体来说是 SDL_Rect,但您可能已经知道). 我无法自己计算数学,我真的没有任何可用于此的代码,所以我无法显示任何内容. 本质上,我正在寻找某种类型的逻辑,我可以应用矩形的坐标,以便每当主游戏循环循环时,它都会将矩形旋转一定的度数. ..
发布时间:2021-07-05 18:58:07 C/C++开发

Pygame 找不到包含文件“sdl.h";

我正在尝试在使用 Pygame 的 Windows 上构建下载的 Python 应用程序.我已经安装了 Python 2.5 和 Pygame 1.7.1.我是 Python 新手,但我只是尝试在 Windows 控制台命令行上键入顶级 .py 文件的名称.(我使用的是 Win XP Pro.) 这是我收到的消息. C:\Python25\include\pygame\pygame.h ..
发布时间:2021-06-23 20:27:54 Python

OSX Yosemite 上的 pygame:无法识别的音乐格式

我正在我的 Mac 上玩 Pygame,运行 OSX Yosemite.我无法使用以下代码播放 MP3 文件: pygame.mixer.music.load('bg_music.mp3')pygame.error:无法识别的音乐格式 我使用的是 Python 2.7.1 并安装了以下库: sdl(酿造):1.2.15 sdl_mixer(酿造):1.2.12 libvorbis ( ..
发布时间:2021-06-23 20:19:26 Python

如何在 Python 中抑制控制台输出?

我正在使用 Pygame/SDL 的操纵杆模块从游戏手柄获取输入.每次我调用它的 get_hat() 方法时,它都会打印到控制台.这是有问题的,因为我使用控制台来帮助我调试,现在它每秒被 SDL_JoystickGetHat value:0: 淹没 60 次.有没有办法可以禁用它?是通过 Pygame/SDL 中的选项还是在函数调用时抑制控制台输出?我在 Pygame 文档中没有看到提到这一点. ..
发布时间:2021-06-23 20:05:50 Python