game of life小游戏(用sdl2实现)

1.首先介绍下game of life的游戏规则:

        (1)在一个细胞世界,每个细胞的存活状态由他周围细胞的状态决定

        (2)若一个细胞周围有三个细胞存活,则不管该细胞上一代为何种状态,该细胞下一代活;

        (3)若一个细胞周围有两个细胞存活,则该细胞状态不变;

        (4)其他情况,该细胞死

详细规则介绍参考生命游戏-百度百科和Conway's Game of Life-Wiki

2.本文采用的图形界面是SDL2,SDL在VS2010中配置方法如下:

        (1)下载sdl开发库:SDL官网

        (2)新建空项目,打开项目属性,接下来开始配置sdl环境

        (3)在属性->配置属性->vs++目录中,配置包含目录和库目录,将刚刚下载解压之后的文件包含进去,其中库目录两个,一般用x86文件夹下的那个(与操作系统无关);我也不知道为什么;

        (4)在链接器中添加附加库目录,将刚刚第二步的lib目录包含进去;

        (5)链接器->系统->子系统中选择控制台,便于调试;

        (6)在链接器->输入中,附加依赖项,将刚刚用到的所有.lib文件包含进去;

        (7)然后把刚刚添加的lib文件拷贝到工程目录下(不然会报错,Mark一下,待解决)

3. 具体实现:

        本文的实现采用的是通过SDL_Window和SDL_Surface这两个类实现的,具体实现参考下面的链接。

        源码参见本人GitHub链接:game of life-github

        接下来说明一下SDL的Window, Surface, Texture, Renderer之间的关系:

        1. window和surface

        CreateWindow之后,利用GetWindowSurface绑定window和surface,然后就可以利用surface绘制界面,记得绘制完之后通过UpdateWindowSurface更新窗口(忘记之后会无法显示界面)

        2. window和renderer :「SDL第二篇」窗口渲染-

        CreatWindow->CreatRenderer->SetDrawColor->RenderClear->RenderDrawRect->RenderPresent->DestoryRenderer->DestoryWindow

        3. window和texture:「SDL第五篇」彻底理解纹理(Texture)-

        texture与surface类似但比surface效率更高

你可能感兴趣的:(game of life小游戏(用sdl2实现))