【发布时间】:2014-05-10 23:40:35
【问题描述】:
我正在尝试制作二维地图编辑器。现在,如果我的地图完成了,我想保存它。
我试过这个:
IMG_SavePNG(SDL_GetWindowSurface(window), "C:/Users/<MY_NAME>/Desktop");
但什么也没发生。没有图像被保存,也没有错误。
这是我的窗口的创建:
SDL_Window* window = SDL_CreateWindow("Famonex", 100, 100, WINDOW_WIDTH, WINDOW_HEIGHT, SDL_WINDOW_SHOWN | SDL_WINDOW_RESIZABLE);
这是我的内容:
#include <SDL.h>
#include <SDL_image.h>
#include <SDL_mixer.h>
【问题讨论】:
-
你确定这个编译正确吗?粗略搜索
IMG_SavePNG表明您忘记了第三个参数:“.. 采用文件名、要保存的表面和压缩级别。压缩级别可以是 0(min) 到 9(max),或 -1(默认)。” -
没有第三个或第四个参数。
-
检查SDL_GetWindowSurface的返回值是否为null。还要研究一下您可能必须锁定表面才能使用它。
-
SDL_GetWindowSurface 不为空。同样当我锁定表面时,仍然是黑色图像。