文档介绍:贪吃蛇游戏程序设计实验报告
Windows编程大作业贪吃蛇设计与实现
学校:武汉轻工大学
院系:
班级:
姓名: 学号:
2015 年12月16日
目录
一、题目介绍
二、设计目的
三、详细设计
四、功能测试
五、总结
六、参考文献
一、题目介绍:
编写一个基于MFC的小游戏。
基本要求:
1、实现一个小游戏
2、实现基本游戏控制功能
3、具有游戏数据保存功能
4、界面布局合理、美观;
二、设计目的:
通过使用vc++,进一步掌握MFC的高级使用方法和锻炼自己动手写程序的能力。了解游戏设计的整个过程,通过熟练使用MFC来设计游戏。程序主要包括:游戏界面设计,游戏菜单栏设计,游戏初始化,游戏控制等。培养和锻炼开发游戏的能力。
三、详细设计
贪吃蛇的头部拥有一个坐标(x,y),蛇体有一个长度len,蛇有一个运动方向direct,故定义一个结构体如下:
struct Snake
{
int x,y;
int len;
int direct;
}Snake[50];
贪吃蛇的食物有一个坐标(x,y),此食物有一个标志isfood,当isfood为0时,表示食物还没被吃,为1时,表示被吃。
struct Food
{
int x;
int y;
int isfood;
}Food;
游戏初始蛇体长度为3,颜色为灰色,食物标志为1,因为此时没有显示出食物,需要随机生成后,才置为0;
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;
=1;//初始化贪吃蛇起初有3个节点,长度为3,起始坐标;食物默认为 1无0有
// TODO: Add your specialized code here and/or call the base class
}
void CSNAKEView::oninit()
{
CDC *pDC=GetDC();
CBrush DrawBrush=(RGB(100,100,100));
CBrush *Drawbrush=pDC->SelectObject(&DrawBrush);
for(int i=0;i<=Snake[0].len-1;i++)
pDC->Rectangle(Snake[i].x*20,Snake[i].y*20,(Snake[i].x+1)*20,(Snake[i].y+1)*20); pDC->SelectObject(DrawBrush);
}
点击游戏开始菜单后,出现一个对话框,提示一秒后,将开始游戏。
void CSNAKEView::OnStart()
{
// TODO: Add mand handler code here
SetTimer(1,1000,NULL);
AfxMessageBox("1秒后开始游戏!");
}
点击游戏暂停菜单后,出现显示“已暂停游戏”的对话框。
void CSNAKEView::OnPause()
{
// TODO: Add mand handler code here
KillTimer(1);
AfxMessageBox("已暂停游戏");
}
点击游戏退出菜单,显示“退出游戏”的对话框,随后关闭游戏界面。
void CSNAKEView::OnExit()
{
} // TODO: Add mand handler code here AfxMessageBo