版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
项目:贪吃蛇游戏设计常州工程职业技术学院计算机技术系项目:贪吃蛇游戏设计常州工程职业技术学院计算机技术系1今日工作任务五:场地类(Floor)设计1分析、设计Floor类的字段和属性
a分析设计并实现Floor类方法
3b任务六:PubClass类和任务七:Speed类42工作汇报、互评3工作小结4结束任务布置5WinForm项目开发》今日工作任务五:场地类(Floor)设计1分析、设计Flo2分析、设计Floor类的字段和属性各项目组汇报预设计、提出问题互评、点评问题解决进一步解读系统需求WinForm项目开发》分析、设计Floor类的字段和属性各项目组汇报预设计、提出问3分析、设计Floor类的字段和属性一、场地(Floor)类分析为游戏的主场地,豆要在此范围内出现,蛇要在此范围内运行;场地的左上角确定场地的显示位置,长宽确定场地的大小在游戏过程中,要首先初始化场地类,然后显示场地,当豆被吃掉后,要随机产生一个新豆并显示,还要不断检查蛇是否吃了豆,是否碰撞到了场地的壁或蛇自身。
WinForm项目开发》分析、设计Floor类的字段和属性一、场地(Floor)类分41)字段分析、设计Floor类的字段和属性
privatestaticintunit=5;
privateint
length=80*unit;
privateintwidth=50*unit;
privatePointdot;
publicintscore;
privateSnakes;
privateBeanbean1;
WinForm项目开发》1)字段分析、设计Floor类的字段和属性 private52)属性分析、设计Floor类的字段和属性 publicSnakeS3)构造函数 publicFloor(Pointp)4)方法: publicvoidDisplay(Graphicsg) publicvoidCheckBean(Graphicsg) publicvoidCheckSnake() privateBeangetRandomBean() publicvoiddisplaybean(Graphicsg) privatevoidReSet(Graphicsg)WinForm项目开发》2)属性分析、设计Floor类的字段和属性 public6二、场地(floor)类实现分析、设计Floor类的字段和属性1.属性设置蛇对象的属性为只读属性
publicSnakeS
{ get{returns;} }WinForm项目开发》二、场地(floor)类实现分析、设计Floor类的字段和属72.构造函数分析、设计Floor类的字段和属性 publicFloor(Pointp)⑴功能 初始化场地的左上角位置dot、豆对象bean1和蛇对象s。⑵设计思路及方法 根据传递来参数p设置场地外框左上角位置;用p和10实例化蛇s(设置蛇的长度由10个块组成);用空构造函数实例化豆对象并设置由p设置豆的位置属性值。WinForm项目开发》2.构造函数分析、设计Floor类的字段和属性 publi8分析设计并实现Floor类方法各项目组汇报预设计、提出问题互评、点评问题解决进一步解读系统需求WinForm项目开发》分析设计并实现Floor类方法各项目组汇报预设计、提出问题互93.方法分析设计并实现Floor类方法1)显示场地(Display)方法⑴功能依次显示场地内的所有对象,场地边框、豆和蛇;还要检查蛇是否吃了豆。WinForm项目开发》3.方法分析设计并实现Floor类方法1)显示场地(Disp10分析设计并实现Floor类方法⑵设计思路创建红色画笔画运行场地显示豆(调用豆的Display方法)显示蛇(调用蛇的Display方法)检查豆是否被吃掉(调用CheckBean方法)结束开始参数(Graphicsg)画一个长能放下80个豆、宽能放下50个豆的红色矩形作为场地依次用各自的显示方法显示蛇和豆,并检测当前豆是否被蛇吃掉。WinForm项目开发》分析设计并实现Floor类方法⑵设计思路创建红色画笔画运行场112)检查蛇是否吃了豆(CheckBean)方法分析设计并实现Floor类方法⑴功能 检测豆是否被蛇吃掉,如果被蛇吃掉,得分增加10分,显示新豆,使蛇增长一块,否则不作任何处理,直接返回。WinForm项目开发》2)检查蛇是否吃了豆(CheckBean)方法分析设计并实现12分析设计并实现Floor类方法⑵设计思路判断豆的位置是否与蛇头的位置相同用Point结构的Equals方法:bean1.Origin.Equals(s.getHeadPoint)其中bean1是当前豆对象,s是蛇对象得分增加10分豆被蛇吃掉了吗?分数增加10产生并显示新豆(调用displaybean方法)蛇增长一块(调用蛇的Growth方法)FT结束开始WinForm项目开发》分析设计并实现Floor类方法⑵设计思路判断豆的133)显示豆(displaybean)方法分析设计并实现Floor类方法 ⑴功能:当豆被蛇吃掉后,消除被吃豆,随机生成一个新豆并显示它。 ⑵设计思路:调用它们各自的方法UnDisplay()、randombean()和Display()完成它们的功能。4)产生随机豆(randombean)方法 ⑴功能:生成一个在场地范围内任意位置的豆。 ⑵设计思路: 由随机数对象产生两个随机数,根据这两个整数建立一个Point变量,把它赋给豆对象的位置Origin属性,最后返回此豆。WinForm项目开发》3)显示豆(displaybean)方法分析设计并实现Flo14分析设计并实现Floor类方法创建伪随机数对象并实例化产生随机x坐标创建新豆并实例化产生随机y坐标由x,y坐标构造点p返回新豆给新豆的位置属性赋值为p开始结束WinForm项目开发》分析设计并实现Floor类方法创建伪随机数对象并实例化产生随15产生随机数分析设计并实现Floor类方法C#中产生随机数的方法分两步:①
创建伪随机数对象,并实例化它。 Randomrandom=newRandom();②
产生整数随机数的方法Next() 格式:intNext(intmaxnum) 功能:产生一个不大于maxnum的非负整数。
WinForm项目开发》产生随机数分析设计并实现Floor类方法C#中产生随机数的方16豆位置坐标随机数由下面两式产生:分析设计并实现Floor类方法Pointd=newPoint(dot.X+x*5,dot.Y+y*5);intx=random.Next(length/unit-2)+1;inty=random.Next(width/unit-2)+1;豆的位置点由下式产生:WinForm项目开发》豆位置坐标随机数由下面两式产生:分析设计并实现Floor类方175)检查蛇是否撞墙和撞到它自身(CheckSnake)方法分析设计并实现Floor类方法⑴功能:⑵设计思路和步骤:要判断蛇头是否撞到场地的墙壁,蛇头的位置由头块的左上角位置决定,当蛇向左、向上运行,头块碰到墙壁时位置与墙的位置重合,当蛇向右、向下运行,头块碰到墙壁时,头块的位置x、y坐标减5,所以判断条件如下:
判断蛇是否撞墙和撞到它自身,如果蛇碰撞到场地的壁或碰撞到它自身,返回true,否则返回false。WinForm项目开发》5)检查蛇是否撞墙和撞到它自身(CheckSnake)方法分18dot.X<s.getHeadPoint.X&&s.getHeadPoint.X<(dot.X+length)-5)&&分析设计并实现Floor类方法判断蛇是否碰到它自身,直接调用判断蛇碰撞到自身属性:!s.getHitSelf。(dot.Y<s.getHeadPoint.Y&&s.getHeadPoint.Y<(dot.Y+width)-5)WinForm项目开发》dot.X<s.getHeadPoint.X&&s.196)重新开始(ReSet)方法分析设计并实现Floor类方法⑴功能:消除现在的蛇,在起始位置重新显示蛇。⑵设计思路和步骤调用蛇的消除方法UnDisplay()和重新设置方法ReSet()。WinForm项目开发》6)重新开始(ReSet)方法分析设计并实现Floor类方法20任务六:PubClass类和任务七:Speed类各项目组汇报预设计、提出问题互评、点评问题解决进一步解读系统需求WinForm项目开发》任务六:PubClass类和任务七:Speed类各项目组汇报21任务六:PubClass类和任务七:Speed类一、公共类(PubClass)分析⒈类分析目的:存放公共数据和公共方法。此项目中要通过自定义速度(Speed)类设置游戏的速度值,此值要应用到窗体(Start)类中,因此在此类中只设置一个静态字段。⒉字段publicstaticintkk;WinForm项目开发》任务六:PubClass类和任务七:Speed类一、公共类(22对象成员与类成员一般在类中定义的成员称为对象成员,即由类定义对象后,每一个对象有各自的独立成员;有时需要类的所有对象在类的范围内共享某个成员,它不属于任何一个对象,称为类成员,即静态成员。对象(实例)成员具有以下特征:访问方式:对象名.实例成员;类的每个实例分别包括一组该类的所有实例字段。
实例函数在类的给定实例上操作,此实例可以作为this访问。任务六:PubClass类和任务七:Speed类WinForm项目开发》对象成员与类成员一般在类中定义的成员称为对象成员,即由类定义23类(静态)成员有以下特征:访问静态成员方式:类名.静态成员名;一个静态字段只标识一个存储位置;
静态函数成员不在某个特定实例上操作,在这样的函数中引用this会引发编译错误。任务六:PubClass类和任务七:Speed类WinForm项目开发》类(静态)成员有以下特征:访问静态成员方式:类名.静态成员名24一、自定义速度(Speed)类分析通过向项目中添加窗体时系统自动创建的,由系统的System.Windows.Forms.Form类派生而成。分析设计与实现PubClass类和Speed类WinForm项目开发》一、自定义速度(Speed)类分析通过向项目中添加窗体时系统25控件名属性名属性值说明ClassNameSpeed
Text自定义速度显示在窗体标题栏Label1Text请输入1~500之间的数字用于提示输入值TextBox1Text
用来输入速度Button1Text确定
任务六:PubClass类和任务七:Speed类WinForm项目开发》控件名属性名属性值说明ClassNameSpeed
Text26事件是类中的另一成员;事件是可以通过代码响应或“处理”的操作。事件驱动的应用程序执行代码以响应事件。每个窗体和控件都公开一组预定义事件,可根据这些事件进行编程。如果发生其中一个事件并且在相关联的事件处理程序中有代码,则调用该代码。事件可由用户操作(如单击鼠标或按某个键)、程序代码或系统生成。任务六:PubClass类和任务七:Speed类WinForm项目开发》事件是类中的另一成员;事件是可以通过代码响应或“处理”的操作27对象引发的事件类型会发生变化,但对于大多数控件,很多类型是通用的。事件处理程序是绑定到事件的方法。当引发事件时,执行事件处理程序内的代码。每个事件处理程序提供两个处理事件的参数。例如,大多数对象都会处理Click事件。如果用户单击窗体,就会执行窗体的Click事件处理程序内的代码。任务六:PubClass类和任务七:Speed类WinForm项目开发》对象引发的事件类型会发生变化,但对于大多数控件,很多类型是通28按钮(Button)控件的单击事件1)功能把文本框(textBox1)中的数据保存到公共类(PubClass)中的静态字段kk中,并关闭窗体。2)设计思路 判断输入到文本框中的数据是否满足要求,如果满足保存,否则输出一提示消息框。
根据人们日常习惯,设置的数据越大,运动的速度就会越快,但是,对于时间控件(timer)而言却恰恰相反,其interval属性值设置越小,调用的速度就会越快,因此,相关数据设置语句可参考如下: PubClass.kk=501-temp任务六:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 学生课外阅读告知书
- 物业投诉分级处理流程及规范
- 虾蟹类配套加工处理手册
- 癌症多学科协作诊疗手册
- 抗旱品种育苗控水炼苗管理手册
- 危险化学品安全操作与事故处理手册
- 标记员数据备份恢复操作手册
- 皮肤科防晒护肤指导手册
- 太阳能光伏与建筑一体化应用技术标准
- 农业工人水族馆水生植物修剪移栽手册
- 不完全肠梗阻护理
- 人教PEP版(一起)(2024)一年级上册英语全册教案(单元整体教学设计)
- 舞蹈基础知识考试题库150题(含答案)
- 《电力行业企业培训师能力标准与评价规范》
- 铁工电〔2023〕54号国铁集团关于印发《普速铁路工务安全规则》的通知
- 安全生产应急预案管理办法
- 小升初奥数思维训练100题(附解析)
- 锂硫电池市场调研报告
- 《魔方》校本课程
- 2019-2021年山东省春季高考数学卷真题(含答案解析)
- 租赁合同终止协议官方版(5篇)
评论
0/150
提交评论