c++ - 绘制小 map (游戏)

标签 c++ opengl sdl

我正在制作一个 rts 游戏,并创建了一个包含 map 图 block 的二维数组。我想将其传输到图像(unsigned int 或 sdl surface?),我可能会将其绘制到 gl Quad 上。我可能只使用 2 个 for 循环来每帧绘制整个 map 。问题是,我不知道如何执行此操作的语法。

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

如果我能找出如何从头开始创建图像的语法(或了解如何将 unsigned int 解释为图像?)并绘制每个像素,这将完全解决我的问题。

最佳答案

你可以先创建一个SDL_Surface使用 SDL_CreateRGBSurface (链接有一个教程)具有所需的 map 高度和宽度。

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

当您想调整 map 大小时,您可以创建一个具有新大小的新 SDL_Surface 并使用图像缩放算法将像素转换为它,然后删除旧表面并使用新表面作为 map

关于c++ - 绘制小 map (游戏),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15739702/

相关文章:

c++ - 如何从调用图中省略内置函数

c++ - 将 float 转换为字符串时如何加速此代码?

c - gluPerspective 看不到绘图中的所有对象

java - 主线程 AWTAnimator 尚不支持 JOGL Immutable glNamedBufferStorage

c++ - 如果我使用日志记录库,SDL 不会显示其窗口

c - 包含 SDL_Rect 的二维结构数组的 SDL_BlitSurface 参数指针

c++ - 内联汇编,输出指令

c++ - 混合 gtk+ 和 c++

c++ - 如何在 OpenGL 中渲染非平凡粒子

windows - 尝试使用 pkg-config 但它不是注册命令