贪吃蛇游戏设计课件_第1页
贪吃蛇游戏设计课件_第2页
贪吃蛇游戏设计课件_第3页
贪吃蛇游戏设计课件_第4页
贪吃蛇游戏设计课件_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、项目:贪吃蛇游戏设计项目:贪吃蛇游戏设计常州工程职业技术学院常州工程职业技术学院 计算机技术系计算机技术系项目:贪吃蛇游戏设计项目:贪吃蛇游戏设计今日工作今日工作任务八:界面(任务八:界面(StartStart)类设计)类设计1分析分析StartStart类、应用类、应用TimerTimer控制系控制系统统 a分析设计并实现系统主菜单分析设计并实现系统主菜单 3 b贪吃蛇游戏扩展功能贪吃蛇游戏扩展功能 4 c完整项目汇报完整项目汇报 、互评、互评2工作总结工作总结3结束结束任务布置任务布置4WinFormWinForm项目开发项目开发项目:贪吃蛇游戏设计项目:贪吃蛇游戏设计分析分析StartS

2、tart类、应用类、应用TimerTimer控制系统控制系统各项目组汇报预设计、提出问题各项目组汇报预设计、提出问题互评、点评互评、点评问题解决问题解决进一步解读系统需求进一步解读系统需求WinFormWinForm项目开发项目开发项目:贪吃蛇游戏设计项目:贪吃蛇游戏设计分析分析StartStart类、应用类、应用TimerTimer控制系统控制系统一、一、 主界面(主界面(StartStart类)分析类)分析u此类继承自系统类此类继承自系统类System.Windows.Forms.FormSystem.Windows.Forms.Form,是是本程序的主窗体。本程序的主窗体。uStartS

3、tart类主要用了继承来的字段、属性、方法和事类主要用了继承来的字段、属性、方法和事件,我们只是在件,我们只是在StartStart类中通过添加控件及设置控类中通过添加控件及设置控件的属性添加了对象字段和对象属性字段。件的属性添加了对象字段和对象属性字段。 WinFormWinForm项目开发项目开发项目:贪吃蛇游戏设计项目:贪吃蛇游戏设计u说明:通过向窗体上添加控件,系说明:通过向窗体上添加控件,系统会自动向窗体类中添加相应的对象统会自动向窗体类中添加相应的对象字段,如本程序的字段,如本程序的mainMenu1mainMenu1、timer1timer1、label1label1等,在类中对

4、应的字段如下:等,在类中对应的字段如下:private System.Windows.Forms.MenuStrip mainMenu1; public System.Windows.Forms.Timer timer1;public System.Windows.Forms.Timer timer1;private System.Windows.Forms.Label label1;private System.Windows.Forms.Label label1;分析分析StartStart类、应用类、应用TimerTimer控制系统控制系统WinFormWinForm项目开发项目开发项目

5、:贪吃蛇游戏设计项目:贪吃蛇游戏设计utimertimer控件控件_ _实现在用户定义的时间间隔引发事件的计时器,此实现在用户定义的时间间隔引发事件的计时器,此计时器最宜用于计时器最宜用于 Windows Windows 窗体应用程序中,并且窗体应用程序中,并且必须在窗口中使用必须在窗口中使用1)1)控件的属性控件的属性 Enabled Enabled 属性属性 获取或设置计时器是否正在运行。获取或设置计时器是否正在运行。 如果计时器当前处于启用状态,则为如果计时器当前处于启用状态,则为 truetrue;否否则为则为 falsefalse。默认为默认为 falsefalse。分析分析Star

6、tStart类、应用类、应用TimerTimer控制系统控制系统WinFormWinForm项目开发项目开发项目:贪吃蛇游戏设计项目:贪吃蛇游戏设计 Interval Interval 属性属性 获取或设置计时器开始计时之间的时间(以毫秒为单获取或设置计时器开始计时之间的时间(以毫秒为单位)。位)。 计时器每次开始计时之间的毫秒数。该值不小于计时器每次开始计时之间的毫秒数。该值不小于 1 1。 备注:备注:2) 2)Tick Tick 事件事件 如果需要自动运行,常用此控件。如果需要自动运行,常用此控件。分析分析StartStart类、应用类、应用TimerTimer控制系统控制系统 若要获取

7、该时间间隔的秒数,将此数字除以若要获取该时间间隔的秒数,将此数字除以 1,000 1,000。 当指定的计时器间隔已过去而且计时器处于启用状态当指定的计时器间隔已过去而且计时器处于启用状态时发生。时发生。WinFormWinForm项目开发项目开发项目:贪吃蛇游戏设计项目:贪吃蛇游戏设计u时间(时间(timer1)控件的控件的Tick 事件事件功能功能设计思路设计思路 自选级别没有等级,其他级别根据分数是自选级别没有等级,其他级别根据分数是50的多少倍,计算级别,如果不是现在等级,保存各的多少倍,计算级别,如果不是现在等级,保存各修改等级。修改等级。 若分数大于等于若分数大于等于550,说明玩

8、到了通关,停止,说明玩到了通关,停止游戏,显示恭喜消息框。游戏,显示恭喜消息框。分析分析StartStart类、应用类、应用TimerTimer控制系统控制系统 显示场地显示场地Floor对象(使蛇运动);显示游戏等对象(使蛇运动);显示游戏等级和分数;判断是否玩到了通关和蛇是否死亡。级和分数;判断是否玩到了通关和蛇是否死亡。WinFormWinForm项目开发项目开发项目:贪吃蛇游戏设计项目:贪吃蛇游戏设计调用调用CheckSnakeCheckSnake方法方法判断蛇是否死亡,如判断蛇是否死亡,如果死亡,停止游戏。果死亡,停止游戏。u蛇的自动运行是由系统每隔一定时间自动调用蛇的自动运行是由系

9、统每隔一定时间自动调用此方法,当时间控件此方法,当时间控件(timer)的的Enable属性设置为属性设置为true时,时间控件可用,设置为时,时间控件可用,设置为false时,时间时,时间控件不可用。控件不可用。u通过下面语句启动游戏和停止游戏。通过下面语句启动游戏和停止游戏。 -timer1.Enable=true;/启动游戏启动游戏 -timer1.Enable=false;/停止游戏停止游戏分析分析StartStart类、应用类、应用TimerTimer控制系统控制系统WinFormWinForm项目开发项目开发项目:贪吃蛇游戏设计项目:贪吃蛇游戏设计分析分析StartStart类、应

10、用类、应用TimerTimer控制系统控制系统显示运动场地显示分数保存现在级别到级数计算现在的级别设置新速度结束游戏显示级数开始现在级别不是原级数且不是自选速度?分数达到550了吗?结束游戏显示”恭喜”消息框蛇死亡了吗?FTTTFF结束WinFormWinForm项目开发项目开发项目:贪吃蛇游戏设计项目:贪吃蛇游戏设计u窗体的窗体的KeyDownKeyDown事件方法事件方法键被按下时发生。键被按下时发生。- -事件处理程序接收一个事件处理程序接收一个 KeyEventArgs KeyEventArgs 类型的参数,类型的参数,它包含与此事件相关的数据。其中它包含与此事件相关的数据。其中Key

11、ValuesKeyValues获取按获取按键的键值。键的键值。 (3737、3838、3939、4040) -1) -1)窗体的窗体的KeyDownKeyDown事件方法事件方法 功能:功能:分析分析StartStart类、应用类、应用TimerTimer控制系统控制系统 根据按键情况,调用蛇的根据按键情况,调用蛇的TurnDirectionTurnDirection方法,改方法,改变蛇的运行方向。变蛇的运行方向。WinFormWinForm项目开发项目开发项目:贪吃蛇游戏设计项目:贪吃蛇游戏设计分析分析StartStart类、应用类、应用TimerTimer控制系统控制系统开始定义整型变量k

12、,d取e.KeyValue给k按向左光标键?d=3按向下光标键?d=2按向右光标键?d=1按向上光标键?d=0调用蛇的TurnDirection方法结束TTTTFFFF读取当前蛇的运行方向给dWinFormWinForm项目开发项目开发项目:贪吃蛇游戏设计项目:贪吃蛇游戏设计分析设计并实现系统主菜单分析设计并实现系统主菜单各项目组汇报预设计、提出问题各项目组汇报预设计、提出问题互评、点评互评、点评问题解决问题解决进一步解读系统需求进一步解读系统需求WinFormWinForm项目开发项目开发项目:贪吃蛇游戏设计项目:贪吃蛇游戏设计1、MenuStrip控件控件 MenuStrip 控件表示窗体

13、菜单结构的容器。控件表示窗体菜单结构的容器。可以将可以将ToolStripMenuItem 对象添加到表示菜单结对象添加到表示菜单结构中各菜单命令的构中各菜单命令的 MenuStrip中。中。 进入每个进入每个toolStripMenuItem命令的单击事件方命令的单击事件方法与其他控件相同,即通过双击此菜单项。法与其他控件相同,即通过双击此菜单项。分析设计并实现系统主菜单分析设计并实现系统主菜单 每个每个ToolStripMenuItem 可以成为应用程序的可以成为应用程序的命令或其他子菜单项的父菜单命令或其他子菜单项的父菜单WinFormWinForm项目开发项目开发项目:贪吃蛇游戏设计项

14、目:贪吃蛇游戏设计2 2、“开始开始/ /重新开始重新开始”菜单菜单 -1)-1)功能:功能: 游戏开始或重新开始游戏;若本菜单项游戏开始或重新开始游戏;若本菜单项为为“开始开始”,改为,改为“重新开始重新开始”;并且;并且“暂停暂停”菜单项可用。菜单项可用。分析设计并实现系统主菜单分析设计并实现系统主菜单WinFormWinForm项目开发项目开发项目:贪吃蛇游戏设计项目:贪吃蛇游戏设计 (1)(1)开始游戏:开始游戏:timer1timer1. .EnableEnable= =truetrue。 (2)(2)判断菜单是否为判断菜单是否为“开始开始”menuItem2.Text=menuIt

15、em2.Text=“开始开始”; (4)(4)当菜单项为当菜单项为“重新开始重新开始”时,调用时,调用 2)2)设计思路及步骤:设计思路及步骤: (3)(3)设置设置“暂停暂停”菜单项可用。菜单项可用。menuItem3.EnabledmenuItem3.Enabled= =truetrue,floor. .ReSet();(); 分析设计并实现系统主菜单分析设计并实现系统主菜单WinFormWinForm项目开发项目开发项目:贪吃蛇游戏设计项目:贪吃蛇游戏设计开始游戏菜单文本为”开始”吗?菜单文本改为”重新开始”重新开始游戏分数恢复为0开始结束TF“暂停/继续”菜单可用分析设计并实现系统主菜

16、单分析设计并实现系统主菜单WinFormWinForm项目开发项目开发项目:贪吃蛇游戏设计项目:贪吃蛇游戏设计3、 “暂停暂停/继续继续”菜单菜单功能:设置程序暂停运行或继续运行。功能:设置程序暂停运行或继续运行。 分析设计并实现系统主菜单分析设计并实现系统主菜单WinFormWinForm项目开发项目开发项目:贪吃蛇游戏设计项目:贪吃蛇游戏设计4、“退出退出”菜单菜单功能:退出程序,用窗体的功能:退出程序,用窗体的Close方法。方法。5、“级别级别”菜单项的菜单项的“第第N级级”子菜单子菜单功能:此菜单项的第一级到第五级全是设置功能:此菜单项的第一级到第五级全是设置游戏级别。游戏级别。设计

17、思路设计思路设置时间控件的设置时间控件的Interval属性为一定的值,游戏级别属性为一定的值,游戏级别和分数,然后显示出来。和分数,然后显示出来。分析设计并实现系统主菜单分析设计并实现系统主菜单WinFormWinForm项目开发项目开发项目:贪吃蛇游戏设计项目:贪吃蛇游戏设计表 7.4 各级别分数和 Interval 属性值 级别 分数 Interval 1 0 500 3 100 400 5 200 300 7 300 200 9 400 100 WinFormWinForm项目开发项目开发项目:贪吃蛇游戏设计项目:贪吃蛇游戏设计6、“自定义速度自定义速度”子菜单子菜单功能:通过显示自定

18、义速度(功能:通过显示自定义速度(Speed)窗体,设窗体,设置游戏的速度。置游戏的速度。设计思路设计思路设置游戏速度时,游戏要停下来,设置好后设置游戏速度时,游戏要停下来,设置好后继续;创建继续;创建Speed实例,模式显示它;设置好实例,模式显示它;设置好速度值后把速度赋给速度值后把速度赋给PubClass类的类的kk静态属性静态属性保存,并设置时间控件保存,并设置时间控件(timer)的的Interval属性。属性。分析设计并实现系统主菜单分析设计并实现系统主菜单WinFormWinForm项目开发项目开发项目:贪吃蛇游戏设计项目:贪吃蛇游戏设计7 7、非模式窗体和模式窗体、非模式窗体和

19、模式窗体创建新非模式窗体后,立即返回,且没有在当创建新非模式窗体后,立即返回,且没有在当前活动窗体和新窗体间建立任何关系。前活动窗体和新窗体间建立任何关系。即在保持新窗口的情况下关闭(或最小化)现即在保持新窗口的情况下关闭(或最小化)现有窗体或在保留现有窗体情况下关闭(或最小有窗体或在保留现有窗体情况下关闭(或最小化)新窗口,都是可以的。化)新窗口,都是可以的。分析设计并实现系统主菜单分析设计并实现系统主菜单WinFormWinForm项目开发项目开发项目:贪吃蛇游戏设计项目:贪吃蛇游戏设计创建模式窗体后,只有当建立的新窗口关闭之创建模式窗体后,只有当建立的新窗口关闭之后,原有窗体才能重新获得

20、控制权。后,原有窗体才能重新获得控制权。需要注意的是,不管是何种情况,只要主窗体需要注意的是,不管是何种情况,只要主窗体被关闭了,或主程序结束了,那么被关闭了,或主程序结束了,那么Application.RunApplication.Run将会关闭所有窗体,不管它将会关闭所有窗体,不管它是模式还是非模式。是模式还是非模式。即如果不关闭新窗口,将无法对原活动窗口进即如果不关闭新窗口,将无法对原活动窗口进行任何操作。对新窗口进行的最小化、还原将行任何操作。对新窗口进行的最小化、还原将会和原窗口一起进行,但是新窗口的关闭对原会和原窗口一起进行,但是新窗口的关闭对原窗口没有影响。窗口没有影响。分析设计

21、并实现系统主菜单分析设计并实现系统主菜单WinFormWinForm项目开发项目开发项目:贪吃蛇游戏设计项目:贪吃蛇游戏设计任何窗体(派生于基类任何窗体(派生于基类FormForm的类),都可的类),都可以以两种方式进行显示。以以两种方式进行显示。u窗体调用窗体调用/非模式窗体非模式窗体From qform=new Form();From qform=new Form(); qform.Show(); qform.Show();分析设计并实现系统主菜单分析设计并实现系统主菜单WinFormWinForm项目开发项目开发项目:贪吃蛇游戏设计项目:贪吃蛇游戏设计 Form qform=new Fo

22、rm(); Form qform=new Form();/模式窗体模式窗体 qform.ShowDialog(); qform.ShowDialog(); 6) 6)“帮助帮助”子菜单子菜单功能:在一个消息框中显示帮助信息。功能:在一个消息框中显示帮助信息。 分析设计并实现系统主菜单分析设计并实现系统主菜单WinFormWinForm项目开发项目开发项目:贪吃蛇游戏设计项目:贪吃蛇游戏设计项目总结项目总结u本章学习了使用类和对象、本章学习了使用类和对象、GDI+GDI+绘图来创建项目。绘图来创建项目。u类是面向对象程序设计的一个基本概念,是类是面向对象程序设计的一个基本概念,是对一组类似的对象

23、的一般化描述,它包括:对一组类似的对象的一般化描述,它包括:字段、属性、方法和事件几类成员。类是创字段、属性、方法和事件几类成员。类是创建对象的模板,由类创建对象,可由下式表建对象的模板,由类创建对象,可由下式表示它们的关系。示它们的关系。WinFormWinForm项目开发项目开发项目:贪吃蛇游戏设计项目:贪吃蛇游戏设计 具体化(创建)具体化(创建) 类类 对象对象 抽象抽象字段是描述类特征的成员,如果需要描述类的字段是描述类特征的成员,如果需要描述类的哪方面的特征,就要设置一个相应的字段;哪方面的特征,就要设置一个相应的字段; 属性是为了访问隐藏数据(字段)的,如果字属性是为了访问隐藏数据

24、(字段)的,如果字段的数据需要在类外访问,就要定义相应的属性;段的数据需要在类外访问,就要定义相应的属性; 方法是类能做的事情;事件是对象接受外部操方法是类能做的事情;事件是对象接受外部操作而发生的动作。作而发生的动作。项目总结项目总结WinFormWinForm项目开发项目开发项目:贪吃蛇游戏设计项目:贪吃蛇游戏设计类成员有非静态和静态之分类成员有非静态和静态之分 非静态成员属于对象非静态成员属于对象对象名对象名. .成员名成员名 静态成员属于类成员静态成员属于类成员类名类名. .成员名。成员名。- -构造函数构造函数- -构造函数的重载构造函数的重载 如果声明类时不包含任何构造函数,系统会给它如果声明类时不包含任何构造函数,系统会给它创建一个默认的空构造函数,如果声明类时创建创建一个默认的空构造函数,如果声明类时创建了一个构造函数

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论