Presentation is loading. Please wait.

Presentation is loading. Please wait.

项目:贪吃蛇游戏设计 工作任务五:场地(Floor)类设计 工作任务六:公共(PubClass)类设计 工作任务七:自定义速度(Speed)类设计 常州工程职业技术学院 计算机技术系.

Similar presentations


Presentation on theme: "项目:贪吃蛇游戏设计 工作任务五:场地(Floor)类设计 工作任务六:公共(PubClass)类设计 工作任务七:自定义速度(Speed)类设计 常州工程职业技术学院 计算机技术系."— Presentation transcript:

1 项目:贪吃蛇游戏设计 工作任务五:场地(Floor)类设计 工作任务六:公共(PubClass)类设计 工作任务七:自定义速度(Speed)类设计
常州工程职业技术学院 计算机技术系

2 任务五:Floor类 一、场地(Floor)类分析 为游戏的主场地,豆要在此范围内出现,蛇要在此范围内运行;
场地的左上角确定场地的显示位置,长宽确定场地的大小; 在游戏过程中,要首先初始化场地类,然后显示场地,当豆被吃掉后,要随机产生一个新豆并显示,还要不断检查蛇是否吃了豆,是否碰撞到了场地的壁或蛇自身。 《C#程序设计》

3 private static int dangwei=5; public static int deifen;
1)字段 private static int dangwei=5; public static int deifen; private int chang=60*dangwei; private int kuan=30*dangwei; private Point dian; private Snake s; private Bean bean1; 《C#程序设计》

4 public void Display(Graphics g) public void CheckBean(Graphics g)
2)属性: public Snake S 3)构造函数 public Floor(Point p) 4)方法: public void Display(Graphics g) public void CheckBean(Graphics g) public void CheckSnake() private Bean getRandomBean() public void displaybean(Graphics g) Private void ReSet(Graphics g) 《C#程序设计》

5 二、场地(floor)类实现 1.属性 设置蛇对象的属性为只读属性 public Snake S { get{return s;} }

6 ⑴功能:初始化场地的左上角位置dian、豆对象bean1和蛇对象s。
2.构造函数 public Floor(Point p) ⑴功能:初始化场地的左上角位置dian、豆对象bean1和蛇对象s。 ⑵设计思路及方法:根据传递来参数p设置场地外框左上角位置;用p和10实例化蛇s(设置蛇的长度由10个块组成);用空构造函数实例化豆对象并设置由p设置豆的位置属性值。 《C#程序设计》

7 ⑴功能:依次显示场地内的所有对象,场地边框、豆和蛇;还要检查蛇是否吃了豆。 ⑵设计思路:
3.方法 1)显示场地(Display)方法 ⑴功能:依次显示场地内的所有对象,场地边框、豆和蛇;还要检查蛇是否吃了豆。 ⑵设计思路: 画一个长能放下80个豆、宽能放下50个豆的红色矩形作为场地; 依次用各自的显示方法显示蛇和豆,并检测当前豆是否被蛇吃掉。 《C#程序设计》

8 《C#程序设计》

9 2)检查蛇是否吃了豆(CheckBean)方法
⑴功能: 检测豆是否被蛇吃掉,如果被蛇吃掉,得分增加10分,显示新豆,使蛇增长一块,否则不作任何处理,直接返回。 ⑵设计思路: 判断豆的位置是否与蛇头的位置相同用Point结构的Equals方法: bean1.Origin.Equals(s.getHeadPoint) 其中bean1是当前豆对象,s是蛇对象 得分增加10分 《C#程序设计》

10 《C#程序设计》

11 ⑴功能:当豆被蛇吃掉后,消除被吃豆,随机生成一个新豆并显示它。 ⑵设计思路:
3)显示豆(displaybean)方法 ⑴功能:当豆被蛇吃掉后,消除被吃豆,随机生成一个新豆并显示它。 ⑵设计思路: 调用它们各自的方法UnDisplay()、randombean()和Display()完成它们的功能。 4)产生随机豆(randombean)方法 ⑴功能:生成一个在场地范围内任意位置的豆。 由随机数对象产生两个随机数,根据这两个整数建立一个Point变量,把它赋给豆对象的位置Origin属性,最后返回此豆。 《C#程序设计》

12 Random random=new Random(); ② 产生整数随机数的方法Next() 格式:int Next(int maxnum)
产生随机数 C#中产生随机数的方法分两步: ①  创建伪随机数对象,并实例化它。 Random random=new Random(); ② 产生整数随机数的方法Next() 格式:int Next(int maxnum) 功能:产生一个不大于maxnum的非负整数。 《C#程序设计》

13 int x=random.Next(length/unit-2)+1; int y=random.Next(width/unit-2)+1;
豆位置坐标随机数由下面两式产生: int x=random.Next(length/unit-2)+1; int y=random.Next(width/unit-2)+1; 豆的位置点由下式产生: Point d=new Point(dot.X+x*5,dot.Y+y*5); 《C#程序设计》

14 《C#程序设计》

15 5)检查蛇是否撞墙和撞到它自身(CheckSnake)方法
⑴功能:判断蛇是否撞墙和撞到它自身,如果蛇碰撞到场地的壁或碰撞到它自身,返回true,否则返回false。 ⑵设计思路和步骤: 要判断蛇头是否撞到场地的墙壁,蛇头的位置由头块的左上角位置决定,当蛇向左、向上运行,头块碰到墙壁时位置与墙的位置重合,当蛇向右、向下运行,头块碰到墙壁时,头块的位置x、y坐标减5,所以判断条件如下: 《C#程序设计》

16 判断蛇是否碰到它自身,直接调用判断蛇碰撞到自身属性: !s.getHitSelf。
dot.X < s.getHeadPoint.X && s.getHeadPoint.X < (dot.X + length)-5) && (dot.Y < s.getHeadPoint.Y && s.getHeadPoint.Y < (dot.Y + width)-5) 判断蛇是否碰到它自身,直接调用判断蛇碰撞到自身属性: !s.getHitSelf。 《C#程序设计》

17 ⑴功能:消除现在的蛇,在起始位置重新显示蛇。 ⑵设计思路和步骤 调用蛇的消除方法UnDisplay()和重新设置方法ReSet()。
《C#程序设计》

18 工作任务六:PubClass类 一、公共类(PubClass)分析 ⒈类分析 目的:存放公共数据和公共方法。
此项目中要通过自定义速度(Speed)类设置游戏的速度值,此值要应用到窗体(Start)类中,因此在此类中只设置一个静态字段。 ⒉字段 public static int kk; 《C#程序设计》

19 对象成员与类成员 对象(实例)成员具有以下特征: 一般在类中定义的成员称为对象成员,即由类定义对象后,每一个对象有各自的独立成员;
有时需要类的所有对象在类的范围内共享某个成员,它不属于任何一个对象,称为类成员,即静态成员。 对象(实例)成员具有以下特征: 访问方式:对象名. 实例成员; 类的每个实例分别包括一组该类的所有实例字段。 实例函数在类的给定实例上操作,此实例可以作为this访问。 《C#程序设计》

20 类(静态)成员有以下特征: 访问静态成员方式:类名.静态成员名; 一个静态字段只标识一个存储位置;
静态函数成员不在某个特定实例上操作,在这样的函数中引用this会引发编译错误。 《C#程序设计》

21 工作任务七:Speed类 一、自定义速度(Speed)类分析
通过向项目中添加窗体时系统自动创建的,由系统的System.Windows.Forms.Form类派生而成。 《C#程序设计》

22 控件名 属性名 属性值 说明 Class Name Speed Text 自定义速度 显示在窗体标题栏 Label1
Text 自定义速度 显示在窗体标题栏 Label1 请输入1~500之间的数字 用于提示输入值 TextBox1 用来输入速度 Button1 确定 《C#程序设计》

23 事件是可以通过代码响应或“处理”的操作。事件可由用户操作(如单击鼠标或按某个键)、程序代码或系统生成。
事件是类中的另一成员; 事件是可以通过代码响应或“处理”的操作。事件可由用户操作(如单击鼠标或按某个键)、程序代码或系统生成。 事件驱动的应用程序执行代码以响应事件。每个窗体和控件都公开一组预定义事件,可根据这些事件进行编程。 如果发生其中一个事件并且在相关联的事件处理程序中有代码,则调用该代码。 《C#程序设计》

24 事件处理程序是绑定到事件的方法。当引发事件时,执行事件处理程序内的代码。每个事件处理程序提供两个处理事件的参数。
对象引发的事件类型会发生变化,但对于大多数控件,很多类型是通用的。例如,大多数对象都会处理 Click 事件。如果用户单击窗体,就会执行窗体的 Click 事件处理程序内的代码。 事件处理程序是绑定到事件的方法。当引发事件时,执行事件处理程序内的代码。每个事件处理程序提供两个处理事件的参数。 《C#程序设计》

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

26 《C#程序设计》

27 《C#程序设计》


Download ppt "项目:贪吃蛇游戏设计 工作任务五:场地(Floor)类设计 工作任务六:公共(PubClass)类设计 工作任务七:自定义速度(Speed)类设计 常州工程职业技术学院 计算机技术系."

Similar presentations


Ads by Google