Presentation is loading. Please wait.

Presentation is loading. Please wait.

项目:贪吃蛇游戏设计 工作任务八:主界面(Start)类

Similar presentations


Presentation on theme: "项目:贪吃蛇游戏设计 工作任务八:主界面(Start)类"— Presentation transcript:

1 项目:贪吃蛇游戏设计 工作任务八:主界面(Start)类
常州工程职业技术学院 计算机技术系

2 工作任务八:主界面(Start)类 一、 主界面(Start类)分析
此类继承自系统类System.Windows.Forms.Form,是本程序的主窗体。 Start类主要用了继承来的字段、属性、方法和事件,我们只是在Start类中通过添加控件及设置控件的属性添加了对象字段和对象属性字段。 《C#程序设计》

3 《C#程序设计》

4 说明:通过向窗体上添加控件,系统会自动向窗体类中添加相应的对象字段,如本程序的mainMenu1、timer1、label1等,在类中对应的字段如下:
private System.Windows.Forms.MainMenu mainMenu1; public System.Windows.Forms.Timer timer1; private System.Windows.Forms.Label label1; 《C#程序设计》

5 二、主界面(Start)类实现 timer控件
实现在用户定义的时间间隔引发事件的计时器此计时器最宜用于 Windows 窗体应用程序中,并且必须在窗口中使用。 1)控件的属性 ⑴Enabled 属性 获取或设置计时器是否正在运行。 如果计时器当前处于启用状态,则为 true;否则为 false。默认为 false。 《C#程序设计》

6 获取或设置计时器开始计时之间的时间(以毫秒为单位)。 计时器每次开始计时之间的毫秒数。该值不小于 1。 备注:
⑵Interval 属性 获取或设置计时器开始计时之间的时间(以毫秒为单位)。 计时器每次开始计时之间的毫秒数。该值不小于 1。 备注: 若要获取该时间间隔的秒数,将此数字除以 1,000。 2)Tick 事件 当指定的计时器间隔已过去而且计时器处于启用状态时发生。 如果需要自动运行,常用此控件。 《C#程序设计》

7 mainMenu控件 MainMenu 控件表示窗体菜单结构的容器。菜单由表示菜单结构中单个菜单命令的 MenuItem 对象组成。每个 MenuItem 可以成为应用程序的命令或其他子菜单项的父菜单。若要将 MainMenu 绑定到将显示它的 Form,请将 MainMenu 分配给 Form 的 Menu 属性。 进入每个MenuItem命令的单击事件方法与其他控件相同,通过双击此菜单项。 《C#程序设计》

8 窗体的KeyDown事件方法 键被按下时发生。
事件处理程序接收一个 KeyEventArgs 类型的参数,它包含与此事件相关的数据。其中KeyValues获取按键的键值。 1)窗体的KeyDown事件方法 ⑴功能:根据按键情况,调用蛇的TurnDirection方法,改变蛇的运行方向。 《C#程序设计》

9 《C#程序设计》

10 时间(timer1)控件的Tick 事件 ⑴功能:显示场地Floor对象(使蛇运动);显示游戏等级和分数;判断是否玩到了通关和蛇是否死亡。
⑵设计思路 自选级别没有等级,其他级别根据分数是50的多少倍,计算级别,如果不是现在等级,保存各修改等级。 若分数大于等于550,说明玩到了通关,停止游戏,显示恭喜消息框。 《C#程序设计》

11 调用CheckSnake方法判断蛇是否死亡,如果死亡,停止游戏。
蛇的自动运行是由系统每隔一定时间自动调用此方法,当时间控件(timer)的Enable属性设置为true时,时间控件可用,设置为false时,时间控件不可用。 通过下面语句启动游戏和停止游戏。 timer1.Enable=true;//启动游戏 timer1.Enable=false;//停止游戏 《C#程序设计》

12 《C#程序设计》

13 3.各菜单事件方法 1)“开始/重新开始”菜单
⑴功能:游戏开始或重新开始游戏;若本菜单项为“开始”,改为“重新开始”;并且“暂停”菜单项可用。 ⑵设计思路及步骤: 设置时间控件(timer1)的Enable属性为true。 判断菜单文字是否为“开始”用语句: menuItem2.Text=“开始”;设置“暂停”菜单项的Enabled属性为true,使菜单项可用。 当菜单项文字为“重新开始”时,调用floor对象的ReSet方法重新开始游戏。 《C#程序设计》

14 《C#程序设计》

15 2) “暂停/继续”菜单 ⑴功能:设置程序暂停运行或继续运行。 《C#程序设计》

16 功能:退出程序,用窗体的Close方法。 4)“级别”菜单项的“第N级”子菜单 ⑴功能:此菜单项的第一级到第五级全是设置游戏级别。
3)“退出”菜单 功能:退出程序,用窗体的Close方法。 4)“级别”菜单项的“第N级”子菜单 ⑴功能:此菜单项的第一级到第五级全是设置游戏级别。 ⑵设计思路 设置时间控件的Interval属性为一定的值,游戏级别和分数,然后显示出来。 《C#程序设计》

17 《C#程序设计》

18 ⑴功能:通过显示自定义速度(Speed)窗体,设置游戏的速度。 ⑵设计思路
5)“自定义速度”子菜单 ⑴功能:通过显示自定义速度(Speed)窗体,设置游戏的速度。 ⑵设计思路 设置游戏速度时,游戏要停下来,设置好后继续;创建Speed实例,模式显示它;设置好速度值后把速度赋给PubClass类的kk静态属性保存,并设置时间控件(timer)的Interval属性。 《C#程序设计》

19 非模式窗体和模式窗体的区别 创建新非模式窗体后,立即返回,且没有在当前活动窗体和新窗体间建立任何关系,即在保持新窗口的情况下关闭(或最小化)现有窗体或在保留现有窗体情况下关闭(或最小化)新窗口,都是可以的。 创建模式窗体后,只有当建立的新窗口关闭之后,原有窗体才能重新获得控制权。即如果不关闭新窗口,将无法对原活动窗口进行任何操作。对新窗口进行的最小化、还原将会和原窗口一起进行,但是新窗口的关闭对原窗口没有影响。 需要注意的是,不管是何种情况,只要主窗体被关闭了,或主程序结束了,那么Application.Run将会关闭所有窗体,不管它是模式还是非模式。 《C#程序设计》

20 任何窗体(派生于基类Form的类),都可以以两种方式进行显示。
窗体调用 任何窗体(派生于基类Form的类),都可以以两种方式进行显示。 //非模式窗体 From qform=new Form(); qform.Show(); //模式窗体 Form qform=new Form(); qform.ShowDialog(); 6)“帮助”子菜单 功能:在一个消息框中显示帮助信息。 《C#程序设计》

21 问题探究 本章学习了使用类和对象、GDI+绘图来创建项目。
类是面向对象程序设计的一个基本概念,是对一组类似的对象的一般化描述,它包括:字段、属性、方法和事件几类成员。类是创建对象的模板,由类创建对象,可由下式表示它们的关系。 《C#程序设计》

22 具体化(创建) 类 对象 抽象 字段是描述类特征的成员,如果需要描述类的哪方面的特征,就要设置一个相应的字段;
类 对象 抽象 字段是描述类特征的成员,如果需要描述类的哪方面的特征,就要设置一个相应的字段; 属性是为了访问隐藏数据(字段)的,如果字段的数据需要在类外访问,就要定义相应的属性; 方法是类能做的事情;事件是对象接受外部操作而发生的动作。 《C#程序设计》

23 类成员有非静态和静态之分 非静态成员属于对象 对象名.成员名 静态成员属于类成员 类名.成员名。 构造函数 构造函数的重载
如果声明类时不包含任何构造函数,系统会给它创建一个默认的空构造函数,如果声明类时创建了一个构造函数,默认的空构造函数就没有了,需要的话就要声明一个。 《C#程序设计》

24 GDI+为Windows应用程序开发提供了一组用于图形图像编程的类、结构和枚举。用GDI+绘图的基本步骤是:
①创建Graphics对象; ②创建画笔或画刷对象,并定义颜色; ③用Graphics对象方法画图。 绘制空心图形要用画笔,绘制实心图形要用画刷。 另外往窗体上增加菜单用mainMenu控件;控制系统自动运行要用timer控件;枚举集合中的所有成员可用IEnumerator 接口对象。 《C#程序设计》


Download ppt "项目:贪吃蛇游戏设计 工作任务八:主界面(Start)类"

Similar presentations


Ads by Google