武汉理工大学《可视化编程》课程设计说明书
目录
1.概述及课设要求 ......................................... 2 1.1基于MFC的贪吃蛇游戏设计与实现 .......................................... 2 1.2概述 ............................................................................................ 2 2.简单的操作及功能说明 ................................... 3 3.MFC具体设计过程及相应模块的功能 ........................ 4 3.1创建工程 .................................................................................... 4 3.2添加消息,成员函数,控件. ....................................................... 4 3.3定义全局变量并确定贪吃蛇的基本大小 .................................. 4 3.4响应键盘操作的消息 ................................................................. 6 3.5对OnRButtonDown()具体添加代码 ....................................... 7 3.6对贪吃蛇初始化(画图) ............................................................. 7 3.7对相关控件的的功能设定 ......................................................... 8 3.8用画刷画一个背景,并画3个矩形区域. ................................ 10 3.9贪吃蛇的前行中的具体的算法和判断. .................................. 11 4.游戏运行的界面及相关的截图 ............................ 14 5系统设计过程中自己所遇到的问题及相应的解决方法和解决过程。 ........................................................ 16 6结束语 ................................................ 18 7参考文献: ............................................. 19 本科课程论文评分标准 .................................... 20
1
武汉理工大学《可视化编程》课程设计说明书
1.概述及课设要求
1.1基于MFC的贪吃蛇游戏设计与实现
1.游戏界面设计 2.食物的初始化
3.游戏开始以及具体实现
1.2概述
此次课程设计我利用MFC编写了一个贪吃蛇游戏,游戏拥有结束时计
分,开始,暂停,继续,退出,重新开始等功能,并且随着贪吃蛇的长度的增加,刷新的速度(移动的速度)也会变快.
2
武汉理工大学《可视化编程》课程设计说明书
2.简单的操作及功能说明
⑴ 运行程序,游戏界面打开。
⑵ 点击“游戏->游戏开始”,出现围墙界面,一条蛇在密闭的白色矩形内,在围墙内随机出现一个食物,游戏开始。
⑶ 通过四个方向键控制蛇的运动方向,吃掉随机出现的豆子,若不小心碰到墙壁或者与自身相交,则该轮游戏结束。 ⑷ 点击“游戏->游戏暂停”,暂停游戏。 ⑸ 点击“游戏->游戏继续”,继续游戏。 ⑹ 点击“游戏->游戏退出”,退出游戏。 ⑺ 点击“游戏->重新开始”,重新开始。 ⑻ 游戏会根据蛇身的长度自动调节难易程度。
3
武汉理工大学《可视化编程》课程设计说明书
3.MFC具体设计过程及相应模块的功能 3.1创建工程
打开VisualC++新建一个MFC AppWizard单文档工程,取名snake
3.2
添加消息,成员函数,控件.
1 WM_KEYDOWN 2 WM_RBUTTONDOWN 3 WM_TIMER
右键CView类选择“ADD Virtual Funciton”选OnInitialUpdate()
首先在已有工程下的“ClassView”中右键CView类添加以下Windows信息
这里的OnInitialUpdate()是对视图的初始化.后再在csnakeview类中添加一个成员函数oninit()用来对贪吃蛇的外观进行初始化. “ResourceView”进行控件的具体设计,这里我们在Menu文件夹中把“IDR_MAINFRAME”中默认的控件全部删除,后自己添加控件并建立类向导,如下图所示;
3.3定义全局变量并确定贪吃蛇的基本大小
struct Snake {
4
武汉理工大学《可视化编程》课程设计说明书
int x,y; int len; int direct;
}Snake[50];
struct Food { int x; int y; int isfood; }Food;
void CSnakeView::OnInitialUpdate() {
CView::OnInitialUpdate(); Snake[0].x=10; Snake[0].y=10; Snake[1].x=11; Snake[1].y=10; Snake[2].x=12; Snake[2].y=10; Snake[0].direct=3; Snake[0].len=3; Food.isfood=1;
5