版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上蛇吞食程序设计【摘要】本游戏设计采用MFC编程,对键盘消息、定时器消息、图形界面等三个主要模块进行设计,可视化强。本游戏初始编写比较基础,程序代码相对简单。此游戏具有可靠性,安全性以及低成本等特点。【关键词】键盘消息 定时器消息 图形界面一功能模块的划分整个界面由一个长宽为540*540的矩形框(此为蛇的活动范围和食物出现的范围)、分数栏等构成。键盘消息:按动键盘、使蛇的方向进行改变。定时器消息:整个程序只用到一个定时器,在OnStart()里对定时器进行设定SetTimer(1,100,NULL),在OnTimer()中对蛇和食物进行处理:第一关:将block设置为
2、1,当分数超过10分蛇不能通过墙壁;第二关:将block设置为2,设置障碍物并且蛇不能碰到墙壁,但有最低分数为20分。图形界面:位图处理:在OnDraw()里面画出蛇和食物的图片。一张蛇图有四个方向的四条蛇,改变x_org(横坐标)、y_org(纵坐标)、t_org(宽度)、b_org(长度)、t_org1(蛇图显示区域的横坐标)的值来控制蛇不同方向的运动,用rand()来随机产生食物的图片。在执行Invalidate()时自动显示位图的不同状态。菜单功能模块:Set包含Start、Gameover、First、Second。Start启动定时器、Gameover关掉定时器并且退出游戏界面。F
3、irst和Second分别选择游戏级别。Help是游戏的说明。二程序流程程序流程:1. 程序执行Ondraw()函数部分,显示出蛇朝右的图片和食物图片。2. 选择级别First或者Second,此时程序会调用OnFirst()或OnSecond()改变block的值。若选择的First,block将赋值为1,然后选择Start程序调用OnStart()函数,将m_nStart赋值为1,程序将执行第一关的代码,蛇能够穿墙而过。如果分数超过10分(即score>10),游戏将自动升级,蛇不能穿墙而过,碰到墙壁蛇将死亡;若选择的Second,block将赋值为2,然后选择Start程序调用On
4、Start()函数,将m_nStart赋值为1,程序将执行第二关的代码,蛇不能够穿墙而过,而且在活动范围内有障碍物,但有最低分20分,若碰到墙壁或障碍物蛇将死亡。3. 在选择Start后,程序自动启动定时器,执行OnTimer()部分的代码,若block=1,执行第一关的代码,蛇可以分别在四个方向上运动,score自动加分直到超过10,则改变代码蛇不能撞墙。若撞墙则KillTimer()并将score置为0;4. 在执行OnTimer()部分的代码时,要不断执行Invalidate()进行刷新,然后调用Ondraw(),画出不同状态下的图形。5. 选择GameOver选项,调用OnEnd()函
5、数,使m_nstart=0, KillTimer()并且退出游戏。程序流程图:三 概要设计1.编写目的概要设计为“蛇吞食”客户端的开发提供基本的设计基础。背景:蛇吞食是源于贪吃蛇开发的一种变种的基础游戏,主要针对手机小游戏进行开发。“蛇吞食”主要目的在于供人娱乐和消遣,此游戏开发代码简单。2.参考资料:Visual c+与面向对象程序设计教程MFC程序开发大全游戏编程精粹63.基本设计概念和处理流程本游戏主要由键盘消息、定时器消息和图形界面三部分功能模块构成。定时器又分为第一关模块和第二关模块;图形界面又分为位图处理模块和菜单功能模块。下图为各功能模块的关系图:4.结构功能模块子功能模块标识符
6、功能描述与其它各模块的关系键盘消息无OnKeyDown改变蛇图的方向在图形界面的Ondraw函数中在一张位图中截取不同方向的蛇图定时器消息第一关模块OnTimer蛇可以分别在四个方向上运动,score自动加分直到超过10,则改变代码蛇不能撞墙。若撞墙则KillTimer()并将score置为0不断对图像进行刷新然后蛇自由的在活动范围内移动,在此会涉及到键盘消息改变蛇移动的方向,也会调用Ondraw()进行图像的处理第二关模块OnTimer蛇可以分别在四个方向上运动,限制蛇的活动范围不断对图像进行刷新然后蛇自由的在活动范围内移动,在此会涉及到键盘消息改变蛇移动的方向,也会调用Ondraw()进行
7、图像的处理图形界面位图处理模块Ondraw画出可视化界面,矩形框、蛇图、食物图片、显示分数等在OnTimer里面进行刷新时自动调用Ondraw()达到显示不同位置和方向的蛇图、不同位置的食物图、在玩游戏过程中的分数和最后的总分数。菜单功能模块Set、HelpSet里面选择级别和开始;Help选择Introduce查看游戏的操作说明5.功能需求与程序的关系各项功能需求的实现同各块程序的分配关系:OnDrawOnInvalidateOnIntroduceOnFirstOnSecondOnStartOnEndOnKeydownOnTimer键盘消息定时器消息位图处理模块菜单功能模块6.人工处理本游戏
8、只由用户按动控制蛇运动方向,防止碰到墙或障碍物即可。尚未解决的问题7.用户接口用户接口的设计按照友好性,更多的采用图形界面。规范操作命令和方法、用户界面、菜单结构、移动提示、弹出弹入图符、警告提示的信息、帮助的提示。键盘消息:用户只需要按动上下左右键控制蛇方向即可。定时器消息:用户只需在菜单中选择需要的关卡,就可启动后台程序。并通过观察蛇的运动速度便可掌握蛇自由移动的大致时间。图形界面:用户通过菜单选择启动后台程序,蛇碰到墙壁或障碍物,则会出现信息提示;通过视图玩游戏,界面简单,从而操作也简单。在玩游戏的过程中可以看到自己当前的分数,游戏结束时可以看到总分。8.出错信息 用户在玩游戏过程中按到
9、错误的键盘会显示信息提示“对不起,按键错误,请重新选择!”;蛇撞墙或障碍物,会提示“笨蛋,蛇撞墙了!”总结在此次课程设计中,编写程序遇到了不少麻烦,比如怎样使蛇自由的活动起来、怎样使用定时器等。幸亏有老师和同学的帮助,才能将这些问题一一的解决。我感觉在编写程序的时候要先规划好先做哪一步,再做哪一步,在每编写好一个模块后要及时的进行调试,以保证程序在整个过程中的正确性。在做此次课程设计之前就先定好了题材,做出粗略的规划:第一步:建立好工程,处理位图;第二步:编写键盘消息的程序,与此同时配合位图进行处理;第三步:处理定时器的消息并且能使位图活动起来;第四步:处理图形界面的菜单选项。编写游戏时要有绝对好的耐心,在此期间会出现各种各样意想不到的困难,此时绝对不能被困难打到,要仔细分析虚心向老师
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 动物用药店的市场竞争力提升策略与实施考核试卷
- 城市规划中的经济影响因素考核试卷
- 危险品仓库的安全生产许可证管理考核试卷
- 印刷业智能生产系统优化与升级案例考核试卷
- 2025年度煤炭开采居间合同与矿山环境保护责任书
- 2025年度瑜伽教练健康养生培训与聘用合同
- 天然气勘探开发地质建模与储量评估考核试卷
- 农村集体经济组织成员权益保障考核试卷
- 娃娃玩具生产过程中的节能减排考核试卷
- 办公室火灾事故的员工应急处理考核试卷
- 公务员考试工信部面试真题及解析
- GB/T 15593-2020输血(液)器具用聚氯乙烯塑料
- 2023年上海英语高考卷及答案完整版
- 西北农林科技大学高等数学期末考试试卷(含答案)
- 金红叶纸业简介-2 -纸品及产品知识
- 《连锁经营管理》课程教学大纲
- 《毕淑敏文集》电子书
- 颈椎JOA评分 表格
- 员工岗位能力评价标准
- 定量分析方法-课件
- 朱曦编著设计形态知识点
评论
0/150
提交评论