问题标签 [sdl-1.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 回答
644 浏览

c++ - 访问像素格式是否需要 SDL_LockSurface?

SDL_LockSurface文档不是很清楚地表明,某些表面的像素格式可能会在其生命周期内发生变化,因此访问表面像素格式的正确方法是首先检查表面是否需要锁定SDL_MUSTLOCK,如果需要,锁定它使用SDL_LockSurface.

但是,许多在线代码示例在没有执行任何检查的情况下访问该格式。

锁定表面是否真的需要访问像素格式?格式可以在表面寿命期间更改以需要锁定吗?

我正在使用 SDL 1.2 以防版本之间存在任何差异。

0 投票
2 回答
3228 浏览

c - 如何清空 SDL 事件队列?

在我的 SDL 1.2 程序中,我有一个KeyPressed函数,它需要检查是否按下了某个键。如果鼠标指针没有移动到窗口前面,则程序会在按下键时按预期停止。另一方面,如果将鼠标指针移到窗口前面,事件队列似乎已填满,之后程序不再响应按键。当没有键盘事件时,有没有办法清空事件队列?

0 投票
1 回答
376 浏览

c - 将 SDL_Surface* 初始化为函数

我想将我所有的 SDL_Surface 初始化为一个函数,以便获得最清晰的 main 可能,但它似乎不起作用。我正在这样做:

并像这样主要调用它:

我测试过,IMG_Load 工作正常,但它似乎没有在函数之外初始化我的 SDL_Surface。有没有办法做到这一点 ?我想必须有一种方法可以正确初始化我的所有 SDL_Surface 在主...

同样,如果我将 SDL_Init() 和 SDL_SetVideoMode() 放入一个函数中,我猜我的屏幕也不会被初始化?这是我的功能:

我打电话给主要的:

没有什么给我发送错误,但似乎没有任何反应。我在网上找到的唯一内容是“你为什么要这样做?没用”。那正确吗 ?

0 投票
2 回答
290 浏览

c++ - SDL_MapRGB,如何使用指向指针的指针获取屏幕->格式

我正在使用一个函数生成一个关卡,所以我正在发送一个指向我的屏幕指针的指针来更新他。但是当我尝试使用 SDL_MapRGB 时,我得到了一个错误*screen->format。有没有办法做到这一点 ?这是我正在使用的代码:

错误出现在代码的末尾,在 SDL_FillRect(); 一切正常,但是这个,我不知道该怎么做。尝试使用 *screen->format、**screen->format、screen->format 甚至 &screen->format(我多么绝望 ^^)。

编辑:错误

错误:在'* screen'中请求成员'format',它是指针类型'SDL_Surface*'(也许你打算使用'->'?)“`

0 投票
1 回答
165 浏览

c - SDL 1.2 必须按两次键才能使事件生效

为了捕捉事件,我在我的 main 中有一个循环。如果玩家输入“1”,那么我调用函数 play(),它也包含一个事件循环(用于移动等)。我真的不明白为什么,但是我必须按两次ESCAPE才能离开游戏,而其他键似乎无法识别。如果我将循环删除到主循环中,那么一切正常。

这是我的主要循环:

这是我的功能(她仍在进行中,所以如果它看起来很愚蠢,请不要感到震惊:D)

0 投票
2 回答
410 浏览

c++ - SDL 与 Qtcrator

我已将 qtcreator 用于控制台应用程序。现在我想将它与 SDL1 一起使用,因为我有一个关于 SDL1 的教程,并且我想在 qtcreator 上学习 SDL,但似乎 qtcreator 有 2 个选项,首先是 consol application,其次是使用 qt 的界面和窗口应用程序。那么我可以使用 SDL 生成的窗口吗?我做了同样的研究,我已经将 SDL 库添加到 qmake 但它没有用

我的文件 *.pro

我的 main.cpp

我有这个错误

这是我的 SDL1 目录 ,目录末尾有更多文件,但我认为它们并不重要

非常感谢你帮助我

0 投票
1 回答
166 浏览

c++ - SDL 1.2 和 SMPEG:仅黑白视频输出

在尝试将 SMPEG 移植到 SDL 1.2 时,我使用了 SDL_CreateRGBSurface 而不是 SDL_UpdateTexture。然而,最后,我想出了这个:

front=SDL_CreateRGBSurfaceFrom(context.frame->image,context.frame->w, context.frame->h,8,context.frame->w,0xff,0xff,0xff,0);

这有效,但我得到的是黑白图像而不是彩色图像。对 bpp 的任何修改都会产生一些疯狂的结果。我可以为此提供提示或一些示例代码吗?

0 投票
0 回答
536 浏览

c - Dr.Memory 在 SDL 程序上使用时崩溃

我正在开发一个 SDL 1.2 项目(Windows、C、Code::Blocks,也使用 sdl_tff 库)。我正在尝试使用 Dr.Memory 检查内存泄漏,但我遇到的问题是它在启动时崩溃(下面提供的日志),

exe 本身会自行崩溃,一旦我将我使用的 tff 文件添加到其目录中,它就可以自行运行良好。

这两个文件在哪里并不重要,只要它们都在同一个目录中,exe运行良好。

如何让 Dr.Memory 正确执行?

0 投票
1 回答
418 浏览

c++ - 未定义符号:SDL_FreeSurface

我有这个错误:

未定义符号:SDL_FreeSurface

我试图调用void SDL_FreeSurface(SDL_Surface* surface);需要释放表面的方法,但这似乎并不能解决问题。

我将 SDL 1.2 与-lSDL, 和-lSDL_image选项 ( /usr/bin/ld: cannot find -lSDL_image) 相关联。

我使用动态库。

0 投票
2 回答
2202 浏览

c++ - 在 SDL 1.2 中移动 SDL 窗口

我在 MAC 上使用带有 FFmpeg 的 SDL 1.2。我正在尝试使用 FFmpeg 和 SDL 构建视频播放器。我正在 SDL_Surface 上观看我的视频。我的播放器工作正常。现在我的问题是,我想移动 SDL 窗口而不从标题栏中拖动它。SDL 1.2 框架中是否有任何用于移动 SDL_Surface 的函数/方法。