欢迎来到天天文库
浏览记录
ID:29466507
大小:292.54 KB
页数:26页
时间:2018-12-20
《vc可视化课程设计mfc贪吃蛇》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、课程名称可视化编程(VC)学院计算机科学与技术学院专业软件工程专业班级姓名指导教师2012——2013学年第2学期目录1、课程设计要求-----------------------------------------------------22、系统功能实现与操作--------------------------------------------23、系统设计概述---------------------------------------------------23.1添加结构体说明----
2、-----------------------------------------23.2模块说明------------------------------------------------------33.3主要功能函数代码及注释---------------------------------34、调试过程------------------------------------------------------------114.1添加功能说明----------------------
3、------------------------114.2错误及解决方案-------------------------------------------115、程序运行结果--------------------------------------------------12附:主要类Cview的成员函数代码-----------------------------15251、课程设计要求题目:基于MFC的贪吃蛇游戏设计与实现。要求:1.游戏界面设计2.食物的初始化3.游戏开始以及具体实现2
4、、系统功能实现与操作本系统运用API函数的相关功能进行界面设计和功能实现。通过Rectangle()函数绘制操作区域及障碍物。通过连续的小矩形实现蛇身的绘制。通过srand()函数和rand()函数生成随机数,完成生成食物功能的实现。综合运用多种if条件判断和for循环的嵌套使用的算法完成各种条件判断。该系统功能简单,操作简易。打开程序后,点击菜单栏的游戏按钮,点击开始游戏,系统弹出对话框,提示还有3秒开始。游戏开始后,贪吃蛇开始移动,通过操作键盘上的上下左右方向键控制蛇的移动,躲避障碍物并吃掉食
5、物。当吃掉的食物累计到达一定数量后,蛇行速度加快。直至撞到边界或障碍物或撞到自身,游戏结束。此时弹出对话框,提示所得分数。游戏中途可通过暂停和继续按钮执行相应操作。3、系统设计概述3.1添加结构体说明structSnake{intx,y;intlen;intdirect;}Snake[50];structFood{intx;25inty;intfood;}Food;Snake结构体数组用于存放贪吃蛇的相关数据,其中x,y存放当前节点矩形左上角的坐标,(Snake[0]为蛇头),len存放当前蛇身的
6、长度,direct存放蛇的行进方向,可在1~4取值。Food结构体用于存放食物的位置信息。其中x,y存放食物小矩形左上角左标,food存放食物存在的布尔判断值。3.2模块说明系统代码部分主要分为三个模块,界面控制模块、初始化模块和功能模块。界面控制模块包括函数:OnStart(),OnPause(),OnContinue(),OnExit()初始化模块包括函数:OnInitialUpdate(),OnDraw(),oninit()功能模块包括函数:OnKeyDown(),OnTimer()3.3主
7、要功能函数代码及注释①OnStart()voidCSnakeView::OnStart(){//TODO:AddyourcommandhandlercodehereSetTimer(1,3000,NULL);AfxMessageBox("还有3秒开始~~!");}点击开始游戏触发,设置定时器控制三秒后开始游戏。②OnPause()voidCSnakeView::OnPause(){//TODO:AddyourcommandhandlercodehereKillTimer(1);AfxMessage
8、Box("不要让人家等太久");}关闭定时器,暂停游戏③OnContinue()voidCSnakeView::OnContinue(){//TODO:Addyourcommandhandlercodehere25SetTimer(1,10,NULL);}重启定时器,恢复游戏④OnExit()voidCSnakeView::OnExit(){//TODO:AddyourcommandhandlercodehereAfxMessageBox("欢迎下次再来!");exit(0);}弹
此文档下载收益归作者所有