首先EA画图软件构造贪吃蛇的活动图。如图所示:
通过流程图可以知道此项目主要分为苹果和蛇两个功能模块,进行如下头文件构造;
首先可以编写苹果的头文件,苹果的功能为(1)生成新的苹果、(2)苹果初始化、(3)苹果显示。
将鼠标放在函数名上然后快速创建apple.cpp文件,在apple.cpp文件中实现苹果与蛇的功能。
1.苹果功能
(1).生成新的苹果,首先定义苹果的初始行、列,苹果的行、列与坐标系的x、y轴相反。
(2).然后可以使用随机数生成的方法让苹果随机出现在一个区域。
(3).然后写加载图片的头文件与使用easyx中的图片功能,进行苹果图片的初始化与加载,如图所示:
(4).最后将apple.cpp文件中的全局变量在全局变量函数的头文件中定义,要加extern并且不能初始化。
2.蛇功能
首先在头文件中编写蛇的大致实现功能
(1).蛇爬行功能,本质就是后面的身体覆盖前面的身体,首先定义蛇的行数组、列数组与长度,并在全局变量头文件中定义;利用循环将后面的身体复制给前面,然后使用switch进行选择方向,代码如下所示:
(2).判断蛇是否吃到苹果,也就是判断蛇头的行列首地址是否等于苹果的行列,代码如图所示:
(3).如果吃到苹果,蛇会增长。
(4).判断蛇是否会撞墙,就是判断蛇行列的首地址是否在边界,代码如下:
(5).判断蛇是否会撞到自己,就是蛇头与蛇身体进行判断,若相同能撞到则返回1,若不同不能撞到则返回0;
(5).编写蛇图片的初始化与加载:
(6).蛇的键盘控制上下左右移动,向上移动时不能向下移动,向左移动时不能向右移动,不能反方向移动。代码如下:
3.全局变量globalvar.h头文件
4.主函数功能编写,对前面编写的函数功能进行调用就可以。
(1).在主函数头调用苹果、蛇、全局变量的头文件,然后再游戏初始化位置加载背景图并对苹果、蛇初始化,生成新的苹果;
(2).对背景、蛇、苹果进行图片加载;
(3).编写定时函数,蛇爬行,判断能否吃到苹果,如果吃到就长个然后生成新的苹果;如果撞到墙,就game over;如果吃到自己,也game over。代码如下:
(4).键盘控制函数,调用上下左右函数即可。