- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我一直在关注 this tutorial ,我已经到了指示我们如何加载和使用位图的地步。这是当前代码:
#include "SDL/SDL.h"
#include <stdlib.h>
int main (int arg, char *argc[]) {
SDL_Surface* screen = NULL;
SDL_Surface* hello = NULL;
SDL_Init(SDL_INIT_EVERYTHING);
screen = SDL_SetVideoMode (256, 256, 32, SDL_SWSURFACE);
hello = SDL_LoadBMP("hello world.png"); // Here
if (hello == NULL) exit(0);
SDL_BlitSurface(hello, NULL, screen, NULL);
SDL_Flip(screen);
SDL_Delay(2000);
SDL_FreeSurface(hello);
SDL_Quit();
return 0;
}
你好,但是,永远不会得到 NULL 以外的任何值。我正在使用 Code::Blocks,即使我将 hello world.png 分散到项目的所有可能目录中(在 bin、obj、Debug 中的任何一个、带有 .cbp 的目录中)或指定整个路径到代码中的图像(如 SDL_LoadBMP("C:\Dir\hello world.png"))你好将得到NULL。
我做错了什么?
操作系统是Windows
编辑:好的,显然 SDL_LoadBMP 只能加载 .bmp 文件!我真傻。
最佳答案
编辑:我将 SDL_LoadBMP 与 IMG_Load 混合,这是我的新答案:
您可以使用 SDL Image (包括 SDL_Image.h,链接 SDL_image.lib 并确保您的文件类型的正确 DLL 与您的二进制文件一起使用,如果您需要的话)调用 IMG_Load . IMG_Load 将注意解析您的文件类型并使用适当的加载来创建新的 SDL Surface。完成后记得释放表面。
关于c++ - SDL_LoadBMP 只返回 NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13347429/
如果这个问题已经被问到,我深表歉意,但我已经研究了大约一个星期,但在任何地方都找不到答案。 我遇到的问题是,当 SDL_LoadBMP() 成功加载图像时,窗口根本不渲染图像,而是渲染一个全黑的屏幕。
我对 SDL1.2 的经验非常有限,我也在尝试迁移到 SDL2.0。这是一个简单的井字游戏,下面的类在初始化时加载我的图像。我无法准确指出我的问题,但我得到了代码为 -1 的退出,因为它无法加载我的位
我一直在关注 this tutorial ,我已经到了指示我们如何加载和使用位图的地步。这是当前代码: #include "SDL/SDL.h" #include int main (int arg
我在做了一些研究后才开始使用 SDL。我从本教程开始 http://lazyfoo.net/SDL_tutorials/lesson01/index2.php << 使用完全相同的代码和 bmp 图像
首先,我知道这个问题已经被问过很多很多次了;我已经阅读了至少五到十种变体,但给出的答案没有一个适用于我的情况。我有这条线: helloWorld = SDL_LoadBMP("helloworld.b
我正在遵循 LazyFoo 的 SDL2.0 教程,使用 Code::Blocks 16.01。我无法使用 SDL_LoadBMP() 加载图像。 这是我第一次在这里提问。我在 Google 上寻找答
我是一名优秀的程序员,十分优秀!