绘制小地图(游戏)

时间:2013-04-01 07:50:37

标签: c++ opengl sdl

我正在制作rts游戏,并创建了一个包含地图图块的二维数组。我想把它转移到一个图像(一个无符号的int或一个sdl表面?),我可能会把它画到一个gl Quad上。我可能只是使用2 for循环来绘制每帧的整个地图。问题是,我不知道如何做到这一点的语法。

我希望地图大小灵活(可能总是正方形),因此小地图也必须灵活。

如果我能找到如何从头创建图像的语法(或理解无符号int如何被解释为图像?)并绘制每个像素,这将完全解决我的问题。

1 个答案:

答案 0 :(得分:1)

您可以先使用SDL_Surface(链接有教程)创建一个SDL_CreateRGBSurface,其中包含所需的地图高度和宽度。

SDL_Surface *map = SDL_CreateRGBSurface(Uint32 flags, int width, int height, int bitsPerPixel, Uint32 Rmask, Uint32 Gmask, Uint32 Bmask, Uint32 Amask);

获得曲面后,可以使用

访问曲面的像素
map->pixels    //pointer to the start of pixel data for map

如果要调整地图大小,可以使用新的大小创建一个新的SDL_Surface,并使用图像缩放算法将像素缩放到它,然后删除旧的曲面并使用新的曲面作为地图