写这个小游戏的时候用了一个图形库
首先在.h文件里面定义了两个结构体和一个枚举 一个结构体里面包括蛇的所有信息 另一个包含食物的所有信息 枚举类型里面是蛇的四个移动方向
这里的数组表示我设定蛇的坐标 并且蛇的长度没有超过一百(数组最大一百所以坐标值小于一百)
然后在.c文件里面定义需要的函数 我写的比较潦草 定义了八个(分别是 初始化蛇 画蛇 蛇的移动 按键检测 初始化食物 画食物 吃食物 判断蛇是不是死亡 这八个函数) 有一些游戏的细节没有完善(比如蛇碰到自己的身体也会死 蛇在向左移动的时候不能向右移动等待) 但我主要以学习为主所以没有在意
函数一 初始化蛇 刚刚开始的时候在左上角初始化三节向右移动的蛇 并且一个节蛇的长度是10
函数二 画蛇 这里i<蛇的长度方便后面吃掉食物之后增加蛇的长度
函数三 蛇的移动 分为蛇头移动和蛇身移动 蛇头的移动主要是用按键控制 而蛇身移动是数组元素的移动 并且舍弃掉蛇尾
函数四 按键控制 这里只写了上下左右控制 还可以加WSAD四个键控制等等 或者写两个蛇写成双人游戏也可以
函数五 食物初始化 这里用了随机数 不能写%800这样没办法保证食物的坐标是10的倍数 就没办法让蛇头坐标与食物坐标重合来判断是否吃掉食物 至于为什么是800 600是因为我主函数绘制的窗口大小是800*600 取余是为了保证食物的可以出现在窗口 坐标不会太大
函数六 画食物
函数七 吃食物
函数八 判断蛇死亡
hwnd我在前面定义了 这里直接写NULL也可以 MessageBox最后一个参数是为了让窗口弹出最前
主函数 这里用extern是因为我在 Init_snake.c文件里面已经定义了但是我又需要在主文件里面使用所以加了关键字extern 大概意思是说我要用这个 但是我不是在这里定义的 让程序去其他地方找找吧
Sleep()函数主要是控制蛇的移动速度
最后附上一张运行的图 和死亡弹窗
源码在这里
大概就这样吧
希望我的笔记对与我一样的C++初学者有所帮助