sdl相关内容

为什么在初始化 SDL 之前在 SDL 中声明一个指针?

在这段代码中,我看到他们在初始化 SDL 之前声明了一个指针: int main(int argc, char* argv[]) {SDL_Window *window;//声明一个指针SDL_Init(SDL_INIT_VIDEO);//初始化 SDL2//使用以下设置创建一个应用程序窗口:窗口 = SDL_CreateWindow("An SDL2 window",//窗口标题SDL_WIN ..
发布时间:2021-06-18 19:58:00 C/C++开发

C++ 为 Windows 创建屏幕保护程序

我使用 OpenGL 和 SDL(它不使用 Windows 库)在 C++ 中创建了一个动画,并希望将其用作 Windows 系统的屏幕保护程序.我读过一个例子:它描述了您只需将 .exe 扩展名更改为 .scr. 我已经这样做了,并将动画作为屏幕保护程序运行,但我注意到动画根本不流畅地运行.好像应用程序性能有损失一样. 我制作的应用程序创建动画,将其设置为全屏,隐藏光标并处理所有键盘 ..
发布时间:2021-06-12 20:05:19 C/C++开发

SDL将窗口另存为BMP

我正在用 SDL 和 C 编写程序,并且希望能够将窗口另存为图像. 这是我的代码: screen = SDL_GetWindowSurface(win);SDL_SaveBMP(screen,"screen"); 但是当我执行它时,我得到: 分段故障 我从其他来源收集到有关指针和内存访问的信息.有帮助吗? 解决方案 在窗口表面调用 SDL_LockSurface 保存位 ..
发布时间:2021-05-29 23:09:02 服务器开发

C SDL键盘事件SDL_KEYUP按下键时触发

我正在C语言中使用SDL,并且试图使某个字符在按下某个键时在屏幕上移动,并在释放该键时停止,但是似乎在按下该键时触发了KEYUP事件.仍然被压制.如果我删除了pressed()中的KEYUP部分,则字符将在屏幕上滑动,但显然不会自行停止.如果我离开KEYUP部分,则必须反复按该键才能在屏幕上移动它们.知道我在做什么错吗? 这就是我所拥有的: ...整数完成= 0;而(完成== 0){按下 ..
发布时间:2021-05-28 19:24:23 其他开发

在C ++应用程序中嵌入WebKit

我正在使用SDL框架以C ++编写游戏,并希望使用HTML/CSS创建游戏的GUI.我已经研究过诸如 Awesomium 之类的框架,但是由于它不是开源的事实而被我拒之门外.我想创建自己的类似想法的实现. 但是,我几乎找不到关于以这种方式实际使用WebKit的文档.我能找到的最接近的是这个使用WebKit的Apple Developer指南,但它针对的是用Objective-C编写的特定于M ..
发布时间:2021-05-14 20:17:38 C/C++开发

游戏中的VSYNC周期是否应该花费固定的时间?

我正在Windows上使用SDL用C编写一个小蛇游戏.在每帧上,我将每个正方形移动恒定数量的像素(例如2个像素). 只要启用了Vsync,运动就非常平稳.但是,我试图在没有Vsync的情况下达到相同的平滑度,只是为了学习如何工作,并且经过大量的努力,我设法通过使用Performance Counter将周期缩短到几乎完美的0.016667秒(此处为60Hz监视器).测量重复的SDL_Dela ..
发布时间:2021-05-09 20:34:29 其他开发

在Emscripten中使用SDL2 RenderDraw函数

我一直在努力将使用SDL2图形的简单C程序通过emscripten移植到Web.我浏览了示例程序,但找不到使用SDL_RenderDrawPoint,SDL_RenderDrawLine或SDL_RenderDrawRect绘制到屏幕上的程序.这些功能在我的程序的Windows/ubuntu版本上有效,但在emscripten版本上无效.我只是看到屏幕上涂有清除的颜色,但没有画任何东西. 这 ..
发布时间:2021-05-04 19:12:24 其他开发

C ++整数除法

说我有 SDL_Rect rect;rect.x = 5;//rect.x的类型为"Uint16"整数y = 11; 我想执行 rect.x/y . 我想将结果作为浮点数,然后四舍五入到最接近的 int . 类似这样的东西: 浮动结果= rect.x/y;整数舍入= ceil(result); 我应该怎么做? 解决方案 投射 rect.x 或 y 浮动,然后进行除 ..
发布时间:2021-04-19 20:30:45 C/C++开发

使用CMake对SDL的未定义引用

我正在使用SDL(v1.2.15-7)和CMake(3.2.1)进行项目.在* .h文件中,我添加了 #include ,当我对其进行编译时,出现了很多错误:未定义对SDL _...的引用... 我认为错误来自CMakeLists.txt,但我真的不知道在哪里. 这是文件内容: CMAKE_MINIMUM_REQUIRED(2.8版)SET(PROJ_NAME“项目 ..
发布时间:2021-04-19 20:28:47 C/C++开发

LNK2019-无法解析的外部符号-C ++-SDL2库

我正在尝试初始化我的游戏窗口,无法克服此错误.我已经尝试过: 一遍又一遍地检查我所有的代码是否存在语法错误 检查SDL2库是否正确包含在我的项目中 请参阅以下代码供您参考: 头文件: #ifndef Game_hpp#define Game_hpp#include"SDL.h"#include类游戏{上市:游戏();〜Game();void init( ..
发布时间:2021-04-19 20:11:37 C/C++开发

SDL_PollEvent似乎阻止窗口表面更新

我目前正在浏览SDL2的Lazy Foo教程(我正在Linux机器上完成此操作),并且遇到某种错误,该错误中我的主目录中包含了 SDL_PollEvent 循环似乎阻止 SDL_UpdateWindowSurface 实际更新.如果我退出 SDL_PollEvent 循环,则已加载的bmp会正确显示.但是,如果我包含 SDL_PollEvent 循环或什至对 SDL_PollEvent 的调用,则 ..
发布时间:2021-04-19 19:45:24 C/C++开发

SDL2时间点之间的平滑纹理(精灵)动画

目前,我正在尝试通过硬件加速技术(DirectX或OpenGL)开发出流畅的动画效果,我当前的目标非常简单,我想在给定的持续时间内将纹理从A点移动到B点,这是动画对象的经典方法, 我了解了很多有关Robert Penner插值的知识,为此,我想用最简单的线性插值为我的纹理设置动画,如下所示: http://upshots.org/actionscript/jsas-understanding ..
发布时间:2021-04-07 20:00:13 C/C++开发

Java和SDL_GetKeyState()

我正在尝试将一些使用SDL的代码转换为Java.我正在使用sdljava绑定. sdljava使用SWIG作为C数据类型和Java之间的桥梁.为了获得等同于SDL_GetKeyState()的值,sdljava提供了方法SWIG_SDLEvent.SDL_GetKeyState(),该方法返回称为SWIGTYPE_p_unsigned_char的内容. 当然,Java没有unsigne ..
发布时间:2021-02-10 20:23:48 Java开发

SDL_KEYDOWN和密钥识别无法正常工作

在我的项目中,我很难获得一个简单的switch语句以用于SDL输入.这是示例: SDL_Event event; SDL_PollEvent(&event); if (event.type == SDL_KEYDOWN) { switch (event.key.keysym.sym) { case SDLK_a: m_x -= 30; ..
发布时间:2020-11-28 22:31:05 C/C++开发

链表内容的C调用功能

我正在使用GLib管理链接列表.我声明了2个结构,并将它们放置在链接列表中,如下所示. Asteroid asteroid = {0,0,50,50,50} Asteroid asteroids = {0,0,200,200,50}; GList *asteroidList = NULL; asteroidList = g_list_append(asteroidList, &astero ..
发布时间:2020-11-15 23:56:12 其他开发

未定义对sdl_function Android Studio的引用

我试图在Android上运行sd l游戏,我按照lazyfoo's教程运行helloworld,效果很好,后来我导入了我的项目,该项目源在Windows中运行正常,没有任何错误,但是我现在在文件中看到许多错误,我是android的新手,我觉得自己已经把源文件的路径弄乱了.下面是错误: Android.mk (在src目录中): LOCAL_PATH := $(call my-dir) ..
发布时间:2020-11-12 19:14:12 移动开发

SDL:窗口冻结

我想开始研究SDL.我有一个示例代码,看它是否工作正常.编译时没有出现任何错误,但是当我运行它时,窗口显示出来,但是程序冻结,直到延迟时间结束. 我是新手,所以我非常感谢您的帮助. int main(int argc, char* argv[]) { SDL_Init(SDL_INIT_EVERYTHING); SDL_Window *window = 0; window = SDL_ ..
发布时间:2020-11-10 22:54:20 C/C++开发