项目:贪吃蛇游戏设计-工作任务五:场地(Floor)类课件.ppt

上传人:牧羊曲112 文档编号:4067653 上传时间:2023-04-02 格式:PPT 页数:33 大小:906.50KB
返回 下载 相关 举报
项目:贪吃蛇游戏设计-工作任务五:场地(Floor)类课件.ppt_第1页
第1页 / 共33页
项目:贪吃蛇游戏设计-工作任务五:场地(Floor)类课件.ppt_第2页
第2页 / 共33页
项目:贪吃蛇游戏设计-工作任务五:场地(Floor)类课件.ppt_第3页
第3页 / 共33页
项目:贪吃蛇游戏设计-工作任务五:场地(Floor)类课件.ppt_第4页
第4页 / 共33页
项目:贪吃蛇游戏设计-工作任务五:场地(Floor)类课件.ppt_第5页
第5页 / 共33页
点击查看更多>>
资源描述

《项目:贪吃蛇游戏设计-工作任务五:场地(Floor)类课件.ppt》由会员分享,可在线阅读,更多相关《项目:贪吃蛇游戏设计-工作任务五:场地(Floor)类课件.ppt(33页珍藏版)》请在三一办公上搜索。

1、常州工程职业技术学院 计算机技术系,项目:贪吃蛇游戏设计,WinForm项目开发,今日工作,结束,WinForm项目开发,分析、设计Floor类的字段和属性,各项目组汇报预设计、提出问题,互评、点评,问题解决,进一步解读系统需求,WinForm项目开发,分析、设计Floor类的字段和属性,一、场地(Floor)类分析,为游戏的主场地,豆要在此范围内出现,蛇要在此范围内运行;,场地的左上角确定场地的显示位置,长宽确定场地的大小,在游戏过程中,要首先初始化场地类,然后显示场地,当豆被吃掉后,要随机产生一个新豆并显示,还要不断检查蛇是否吃了豆,是否碰撞到了场地的壁或蛇自身。,WinForm项目开发,

2、1)字段,分析、设计Floor类的字段和属性,private static int unit=5;,private int length=80*unit;,private int width=50*unit;,private Point dot;,public int score;,private Snake s;,private Bean bean1;,WinForm项目开发,2)属性,分析、设计Floor类的字段和属性,public Snake S,3)构造函数,public Floor(Point p),4)方法:,public void Display(Graphics g),publ

3、ic void CheckBean(Graphics g),public void CheckSnake(),private Bean getRandomBean(),public void displaybean(Graphics g),private void ReSet(Graphics g),WinForm项目开发,二、场地(floor)类实现,分析、设计Floor类的字段和属性,1.属性,设置蛇对象的属性为只读属性,public Snake S,getreturn s;,WinForm项目开发,2.构造函数,分析、设计Floor类的字段和属性,public Floor(Point p

4、),功能,初始化场地的左上角位置dot、豆对象bean1和蛇对象s。,设计思路及方法,根据传递来参数p设置场地外框左上角位置;用p和10实例化蛇s(设置蛇的长度由10个块组成);用空构造函数实例化豆对象并设置由p设置豆的位置属性值。,WinForm项目开发,分析设计并实现Floor类方法,各项目组汇报预设计、提出问题,互评、点评,问题解决,进一步解读系统需求,WinForm项目开发,3.方法,分析设计并实现Floor类方法,1)显示场地(Display)方法,功能,依次显示场地内的所有对象,场地边框、豆和蛇;还要检查蛇是否吃了豆。,WinForm项目开发,分析设计并实现Floor类方法,设计思

5、路,创建红色画笔,画运行场地,显示豆(调用豆的Display方法),显示蛇(调用蛇的Display方法),检查豆是否被吃掉(调用CheckBean方法),结束,开始参数(Graphics g),画一个长能放下80个豆、宽能放下50个豆的红色矩形作为场地,依次用各自的显示方法显示蛇和豆,并检测当前豆是否被蛇吃掉。,WinForm项目开发,2)检查蛇是否吃了豆(CheckBean)方法,分析设计并实现Floor类方法,功能,检测豆是否被蛇吃掉,如果被蛇吃掉,得分增加10分,显示新豆,使蛇增长一块,否则不作任何处理,直接返回。,WinForm项目开发,分析设计并实现Floor类方法,设计思路,判断豆

6、的位置是否与蛇头的位置相同用Point结构的Equals方法:,bean1.Origin.Equals(s.getHeadPoint),其中bean1是当前豆对象,s是蛇对象,得分增加10分,豆被蛇吃掉了吗?,分数增加10,产生并显示新豆(调用displaybean方法),蛇增长一块(调用蛇的Growth方法),F,T,结束,开始,WinForm项目开发,3)显示豆(displaybean)方法,分析设计并实现Floor类方法,功能:当豆被蛇吃掉后,消除被吃豆,随机生成一个新豆并显示它。,设计思路:,调用它们各自的方法UnDisplay()、randombean()和Display()完成它们

7、的功能。,4)产生随机豆(randombean)方法,功能:生成一个在场地范围内任意位置的豆。,设计思路:,由随机数对象产生两个随机数,根据这两个整数建立一个Point变量,把它赋给豆对象的位置Origin属性,最后返回此豆。,WinForm项目开发,分析设计并实现Floor类方法,创建伪随机数对象并实例化,产生随机x坐标,创建新豆并实例化,产生随机y坐标,由x,y坐标构造点p,返回新豆,给新豆的位置属性赋值为p,开始,结束,WinForm项目开发,产生随机数,分析设计并实现Floor类方法,C#中产生随机数的方法分两步:,创建伪随机数对象,并实例化它。,Random random=new R

8、andom();,产生整数随机数的方法Next(),格式:int Next(int maxnum),功能:产生一个不大于maxnum的非负整数。,WinForm项目开发,豆位置坐标随机数由下面两式产生:,分析设计并实现Floor类方法,Point d=new Point(dot.X+x*5,dot.Y+y*5);,int x=random.Next(length/unit-2)+1;,int y=random.Next(width/unit-2)+1;,豆的位置点由下式产生:,WinForm项目开发,5)检查蛇是否撞墙和撞到它自身(CheckSnake)方法,分析设计并实现Floor类方法,功

9、能:,设计思路和步骤:,要判断蛇头是否撞到场地的墙壁,蛇头的位置由头块的左上角位置决定,当蛇向左、向上运行,头块碰到墙壁时位置与墙的位置重合,当蛇向右、向下运行,头块碰到墙壁时,头块的位置x、y坐标减5,所以判断条件如下:,判断蛇是否撞墙和撞到它自身,如果蛇碰撞到场地的壁或碰撞到它自身,返回true,否则返回false。,WinForm项目开发,dot.X s.getHeadPoint.X&s.getHeadPoint.X(dot.X+length)-5)&,分析设计并实现Floor类方法,判断蛇是否碰到它自身,直接调用判断蛇碰撞到自身属性:,!s.getHitSelf。,(dot.Y s.g

10、etHeadPoint.Y&s.getHeadPoint.Y(dot.Y+width)-5),WinForm项目开发,6)重新开始(ReSet)方法,分析设计并实现Floor类方法,功能:消除现在的蛇,在起始位置重新显示蛇。,设计思路和步骤,调用蛇的消除方法UnDisplay()和重新设置方法ReSet()。,WinForm项目开发,任务六:PubClass类和任务七:Speed类,各项目组汇报预设计、提出问题,互评、点评,问题解决,进一步解读系统需求,WinForm项目开发,任务六:PubClass类和任务七:Speed类,一、公共类(PubClass)分析,类分析,目的:存放公共数据和公共

11、方法。,此项目中要通过自定义速度(Speed)类设置游戏的速度值,此值要应用到窗体(Start)类中,因此在此类中只设置一个静态字段。,字段,public static int kk;,WinForm项目开发,对象成员与类成员,一般在类中定义的成员称为对象成员,即由类定义对象后,每一个对象有各自的独立成员;,有时需要类的所有对象在类的范围内共享某个成员,它不属于任何一个对象,称为类成员,即静态成员。,对象(实例)成员具有以下特征:,访问方式:对象名.实例成员;,类的每个实例分别包括一组该类的所有实例字段。,实例函数在类的给定实例上操作,此实例可以作为this访问。,任务六:PubClass类和

12、任务七:Speed类,WinForm项目开发,类(静态)成员有以下特征:,访问静态成员方式:类名.静态成员名;,一个静态字段只标识一个存储位置;,静态函数成员不在某个特定实例上操作,在这样的函数中引用this会引发编译错误。,任务六:PubClass类和任务七:Speed类,WinForm项目开发,一、自定义速度(Speed)类分析,通过向项目中添加窗体时系统自动创建的,由系统的System.Windows.Forms.Form类派生而成。,分析设计与实现PubClass类和Speed类,WinForm项目开发,任务六:PubClass类和任务七:Speed类,WinForm项目开发,事件是类

13、中的另一成员;,事件是可以通过代码响应或“处理”的操作。,事件驱动的应用程序执行代码以响应事件。每个窗体和控件都公开一组预定义事件,可根据这些事件进行编程。,如果发生其中一个事件并且在相关联的事件处理程序中有代码,则调用该代码。,事件可由用户操作(如单击鼠标或按某个键)、程序代码或系统生成。,任务六:PubClass类和任务七:Speed类,WinForm项目开发,对象引发的事件类型会发生变化,但对于大多数控件,很多类型是通用的。,事件处理程序是绑定到事件的方法。当引发事件时,执行事件处理程序内的代码。每个事件处理程序提供两个处理事件的参数。,例如,大多数对象都会处理 Click 事件。如果用

14、户单击窗体,就会执行窗体的 Click 事件处理程序内的代码。,任务六:PubClass类和任务七:Speed类,WinForm项目开发,按钮(Button)控件的单击事件,1)功能,把文本框(textBox1)中的数据保存到公共类(PubClass)中的静态字段kk中,并关闭窗体。,2)设计思路,判断输入到文本框中的数据是否满足要求,如果满足保存,否则输出一提示消息框。,根据人们日常习惯,设置的数据越大,运动的速度就会越快,但是,对于时间控件(timer)而言却恰恰相反,其interval 属性值设置越小,调用的速度就会越快,因此,相关数据设置语句可参考如下:,PubClass.kk=501

15、-temp,任务六:PubClass类和任务七:Speed类,WinForm项目开发,定义整型变量temp,读取文本框中值给temp,0temp500?,显示数据不符合要求消息框,temp赋给PubClass.kk,关闭当前窗体,开始,结束,T,F,任务六:PubClass类和任务七:Speed类,WinForm项目开发,任务六:PubClass类和任务七:Speed类,WinForm项目开发,工作小结,使用Random类及方法产生随机数;,能分析及设计Floor类;,分析设计与实现Floor类的构造函数;,分析设计与实现Floor显示方法;,查蛇是否撞墙和撞到它自身方法;,分析设计与实现随机产生一个豆方法;,分析设计与实现显示豆方法;,分析设计与实现PubClass类,分析设计与实现Speed类,WinForm项目开发,任务布置,1课下进一步修改和扩展项目;把电子稿上传;,2完成本任务的小结;,3以小组为单位预设计项目的工作任务八Start类设计,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号