jjzjj

c++ - 从 std::istream 读取 SDL_RWops

我很惊讶Google没有找到解决方案。我正在寻找一种允许SDL_RWops与std::istream一起使用的解决方案。SDL_RWops是在SDL中读取/写入数据的替代机制。是否有指向解决该问题的网站的链接?一个明显的解决方案是将足够的数据预读到内存中,然后使用SDL_RWFromMem。但是,这样做的缺点是我需要事先知道文件大小。似乎这个问题可以通过“覆盖”SDL_RWops函数以某种方式解决... 最佳答案 我觉得不好回答我自己的问题,但它困扰了我一段时间,这是我想出的解决方案:intistream_seek(structSD

c++ - C++ SDL 和 (Python PyGame) 是否被业余爱好者以外的人使用?

作为一个业余爱好者,我对使用PyGame制作2D游戏有一点经验,并且尝试过使用C++和SDL库(在VisualStudio中),我很好奇。图书馆是否被专业使用? 最佳答案 http://en.wikipedia.org/wiki/List_of_games_using_SDLDoom3和UnrealTournament在该列表中,所以我会说它是专业使用的 关于c++-C++SDL和(PythonPyGame)是否被业余爱好者以外的人使用?,我们在StackOverflow上找到一个类似的

c++ - SDL 链接器错误

下面的代码非常简单。它只是使用SDL将图像绘制到带有背景的屏幕上。我之前能够运行的程序运行良好,可以毫无问题地引用所有内容。然而,现在编译器会报错。无论如何,这是代码:#include#include#include"SDL/SDL.h"constintSCREEN_WIDTH=640;constintSCREEN_HEIGHT=480;constintSCREEN_BPP=32;usingstd::string;SDL_Surface*load_image(std::stringfilename){SDL_Surface*loadedImage=NULL;SDL_Surface*op

c++ - 为什么此代码会导致访问冲突?

这个函数工作得很好,或者编译器/调试器告诉我voidGUIManager::init(ToScreen*tS){toScreen=tS;loadFonts();GUI_Surface=SDL_SetVideoMode(toScreen->width,toScreen->height,32,SDL_SWSURFACE);components.push_back(&PlainText("Hello,World!",font,-20,-40));}在这里,第一个函数调用引发了访问冲突错误。调试器没有显示任何问题。我没有机会调试组件[0],因为程序在此处停止。voidGUIManager::d

c++ - TTF_OpenFont 返回 NULL

TTF_OpenFont()returnsNULL我有同样的问题,TTF_OpenFont返回NULL并有错误。TTF_OpenFont("/absolute/path/to/SourceSansPro-Black.ttf",25);std::cout然后我得到“无法加载字体文件”.ttfchmod是777我尝试用root运行程序我的想法用完了。 最佳答案 是的,我已经初始化了TTF。问题是我(不知道如何)将旧版SDL_TTF与SDL2.0一起使用我下载了2.0TTF,编译并链接它,现在它可以工作了。

c++ - 如何使用 SDL_CreateTexture

我想知道如何使用SDL_CreateTexture功能。我只想创建纹理,给它一种颜色并将其绘制在屏幕上的某个位置。我不想加载任何图片。我以为我可以按此顺序使用SDL_CreateTexture、SDL_SetTextureColorMod、SDL_RenderCopy、SDL_RenderPresent,但我总是得到一个黑色矩形而不是红色矩形。#includeintmain(intargc,char*argv[]){SDL_Init(SDL_INIT_EVERYTHING);SDL_Window*MainWindow=SDL_CreateWindow("MyGameWindow",SD

c++ - 在 SDL 中打印键的名称

我的SDL程序正在返回所有键都相同的内存地址,我正在尝试打印键的名称,即如果用户按下“F”键,控制台输出“F”。我将如何着手编辑我的代码以实现此目的?voidGame::handleEvents(){SDL_Eventevent;if(SDL_PollEvent(&event)){switch(event.type){caseSDL_QUIT:g_bRunning=false;//SDL_Quit();break;caseSDL_KEYDOWN://thisisthelinethatisnotworkingasexpected.std::cout 最佳答案

c++ - MVS2015 使用 SDL2 不断给出 "unresolved externals"错误

我试图让SDL与我的MVS2015一起工作,但到目前为止没有成功,我真的想让它工作,所以我将解释我所做的每一步。首先,我从SDL安装指南下载了预构建SDL2库:https://wiki.libsdl.org/Installation,然后解压。在MVS2015中创建一个新的控制台应用程序,打开项目属性页面并正确设置“包含目录”,我检查了三次,也为“库目录”做了这个。然后我转到“链接器”->“输入”并将SDL2.lib添加到“附加依赖项”。到目前为止一切顺利,我的代码现在应该可以与SDL一起使用了吧?我做了一个简短的主要测试它是否有效:#includeintmain(){SDL_Init

c++ - 用opengl画图SDL Renderer就没用了吗?

我正在学习SDL2,但我也在使用使用OpenGL调用的imgui库。根据我在各种在线博客上阅读的内容,我不能轻易混合SDL2渲染器和opengl调用;我要么使用其中一个。我读过的大部分教程都使用渲染器,所以我不太明白如何在没有渲染器的情况下使用SDL2来绘制图元或绘制Sprite。以此为例:http://lazyfoo.net/tutorials/SDL/11_clip_rendering_and_sprite_sheets/index.php他创建了sdl渲染器:gRenderer=SDL_CreateRenderer(gWindow,-1,SDL_RENDERER_ACCELERA

c++ - 在 OpenGL 中设置相机

我从事游戏引擎开发已有一段时间了。我从仅使用SDL的2D图形开始,但我已经通过使用OpenGL慢慢转向3D功能。我看到的大多数关于“如何完成工作”的文档都使用了GLUT,但我没有使用它。问题是我如何在OpenGL中创建一个可以在3D环境中移动并正确显示3D模型和Sprite(例如,具有固定位置和旋转的Sprite)的“相机”。为了在OpenGL相机中设置相机,我应该关注哪些函数以及它们应该以什么顺序调用?以下是一些背景信息,说明了我为什么想要一台真正的相机。为了绘制一个简单的Sprite,我从SDL表面创建了一个GL纹理,然后将其绘制到坐标为(SpriteX-CameraX)和(Spr