VB高级程序设计对抗扫雷游戏项目开发.ppt
《VB高级程序设计对抗扫雷游戏项目开发.ppt》由会员分享,可在线阅读,更多相关《VB高级程序设计对抗扫雷游戏项目开发.ppt(126页珍藏版)》请在三一办公上搜索。
1、主讲:江丽,VB高级程序设计,2011年上学期,主讲:江丽,【项目1】“对抗扫雷游戏”项目开发,2011年上学期,教学目标,1.深入了解和掌握类的创建和使用方法2.深入了解和掌握自定义控件创建和使用方法3.掌握VB.NET图形化开发方法,1游戏流程,【任务1:“对抗扫雷游戏”项目总体分析】,2.项目文件架构图3.程序运行方式 单击此处运行程序,【任务2:VB.NET的图形化开发与实现】,本次任务要求掌握以下两个方面的知识:1.掌握在VB.NET环境下绘制图形和文本的一般方法。2.掌握在VB.NET环境下如何将系统控件外观改为具有个性化外观。,通过该次学习,希望同学们课后借助各学习渠道对VB.N
2、ET中图形制作有更深入的了解。,向Windows桌面绘制文本和图形需要对图形设备接口(GDI+)编程。GDI+支持Windows把文本、线条、矩形和更加复杂的图形(如多边形和曲线)显示到屏幕或其他图形设备(如打印机)。另外,还允许渲染图像(如位图图像)。,处理GDI+时需要使用下面的命名空间和类:1System.Drawing命名空间:含有Pen、Brush等类成员用以定义要绘制图形形状以及它们的轮廓和填充方式。2System.Drawing.Drawing2D命名空间:扩充了System.Drawing命名空间的功能,包含了一些新增类,如:渐变笔刷等。3System.Graphics类:用来
3、绘制图形和图像,输出方向可以是窗体、打印机及其它绘图设备(主要看实例化的对象是谁)。,一、Color类所属命名空间:System.Drawing作用:用来处理颜色。1常用属性(1)A属性:返回指定颜色的Alpha成分值。(2)R属性:返回红色成分值。(3)G属性:返回绿色成分值。(4)B属性:返回蓝色成分值。以上四个属性的值范围均为:0-255,(5)共享预定颜色属性:有多种预定义颜色,如Red、Pink、Blue等。由于它们是共享方式属性,所以无需对Color类实例化即可直接引用。例定义颜色对象mycolor,值为黄色。Dim myColor As Color=Color.Yellow,2常
4、用方法Color.FromArgb通过此方法可以由用户自定义颜色,该方法有四种重载方法,具体见教材。例定义颜色对象circleColor,透明度、红、绿、兰分量值分别为100,26,57,126,229。Dim circleColor As Color=Color.FromArgb(100,26,57,126,229),二、笔刷当填充封闭图形(如:圆、长方形等)区域时,就要用到笔刷。VB.NET支持4种笔刷:单色笔刷、带图案笔刷、渐变笔刷及图形笔刷。1SolidBrush类所属命名空间:System.Drawing作用:用来定义实色填充图形笔刷。使用方法示例:Dim br As New Sol
5、idBrush(Color.Red)Dim rec As New Rectangle(1,1,100,100)e.Graphics.FillRectangle(br,rect)除了自定义笔刷外,还可以像命名钢笔一样使用使笔刷,上述代码可以写成:Dim rec As New Rectangle(1,1,100,100)e.Graphics.FillRectangle(Brushes.Red,rect),2HatchBrush类所属命名空间:System.Drawing.Drawing2D作用:用来定义有填充图案和背景的笔刷。使用方法示例:Dim hatbr As New Drawing2D.Ha
6、tchBrush _(Drawing2D.HatchStyle.Cross,_ Color.Black,Color.Red)Dim rec As New Rectangle(1,1,100,100)e.Graphics.FillRectangle(hatbr,rect),3LinearGradientBrush类所属命名空间:System.Drawing.Drawing2D作用:用来定义线性渐变色笔刷。使用方法示例:Dim rec As New Rectangle(1,1,100,100)Dim lgBr As New _ System.Drawing.Drawing2D.LinearGrad
7、ientBrush(rec,_ Color.Red,Color.Yellow,_ Drawing2D.LinearGradientMode.ForwardDiagonal)Me.CreateGraphics.FillRectangle(lgBr,rec),4TextureBrush类所属命名空间:System.Drawing作用:用来定义带图形的笔刷。使用方法示例:Dim myImage As Image=_ Image.FromFile(E:photopen.ico)Dim tBr As New TextureBrush(myImage,_ Drawing2D.WrapMode.TileFl
8、ipX)Dim rec As New Rectangle(1,1,100,100)Me.CreateGraphics.FillRectangle(tBr,rec),三、Pen类 所属命名空间:System.Drawing 作用:定义线条或一个封闭区域边框的颜色和宽度,常用于绘制封闭图形的轮廓。使用方法示例:Dim mypen1 As New Pen(Color.Red)Dim mypen2 As New Pen(Color.Gray,3)还可用预定义钢笔来创建钢笔对象,示例代码如下:Dim mypen As Pen=Pens.Yellow,使用方法示例:Dim myPen As New Pen
9、(Color.Red,5)Me.CreateGraphics.DrawEllipse(myPen,20,_ 20,100,100),四、Grapics类所属命名空间:System.Drawing作用:用以绘制图形和文本。VB.NET图形处理包括绘直线、多边形、圆等多种几何图菜。同时,还包括以特殊字体显示文本的能力。所有这些功能均在Grapics类的子类中处理。如要在窗体中添加图形,则需要实例化一个窗体Graphics类的对象;如要在图片上绘制图形,则需要实例化一个图片的Graphics类对象。示例代码如下:,定义绘制区域 Dim r As New Rectangle(New Point(0,0
10、),_ New Size(50,50)定义不同的Graphics类对象 Dim gr1 As Graphics=Me.CreateGraphics Dim gr2 As Graphics=_ PictureBox1.CreateGraphics 绘制图形 gr1.FillRectangle(Brushes.Red,r)gr2.FillRectangle(Brushes.Green,r),1.常用属性SmoothingMode属性:获取或设置此Graphics的呈现质量。TextRenderingHint属性:获取或设置与此Graphics关联的文本的呈现模式。2.常用方法 DrawRectan
11、gle方法:绘制由坐标对、宽度和高度指定的矩形。DrawString方法:在指定位置并且用指定的Brush和Font对象绘制指定的文本字符串。FillRectangle方法:填充由一对坐标、一个宽度和一个高度指定的矩形的内部。FillPath方法:填充GraphicsPath的内部。注:还有其它一些常用方法如FillPie,FillEllipse等见教材。,3VB.NET的图形处理VB.NET处理图形一般包括两个步骤:(1)创建Graphics对象。可以通过具备创建Graphics对象能力的对象中的CreateGraphics方法创建Graphics对象。(2)利用创建的Graphics对象下
12、的方法绘制线条和形状、呈现文本或显示与操作图像。值得注意的是,图形是在创建该Graphics对象的对象中进行绘制。,例分别在当前窗体上绘制红色实心正方形,在PictureBox1控件中绘制绿色实心正方形。正方形左上角均为(0,0),宽为50。,定义不同的Graphics对象(gr1是由窗体创建,gr2由PictureBox1创建)Dim gr1 As Graphics=Me.CreateGraphics Dim gr2 As Graphics=PictureBox1.CreateGraphics 定义绘制的矩形区域Dim r As New Rectangle(New Point(0,0),Ne
13、w Size(50,50)绘制图形gr1.FillRectangle(Brushes.Red,r)gr2.FillRectangle(Brushes.Green,r),上机实践,1.在窗体上绘制如下外观形式文本,2.制作窗体,要求该窗体运行时界面如下。(矩形是在Panel控件中绘制),五、GraphicsPath类所属命名空间:System.Drawing.Drawing2D作用:表示一系列相互连接的直线和曲线。利用该类结合Graphics下的FillPath方法可以绘制自定义图形。,常用方法:StartFigure:不闭合当前图形即开始一个新图形。后面添加到该路径的所有点都被添加到此新图形中
14、。AddLine:向当前路径追加一条线段。AddArc:向当前路径追加一段椭圆弧。AddString:向此路径添加文本字符串。AddPath:将指定的GraphicsPath追加到该路径。CloseFigure:闭合当前图形并开始新的图形。如果当前图形包含一系列相互连接的直线和曲线,该方法通过连接一条从终结点到起始点的直线,闭合该环回。注:还有其它一些常用方法如AddPie,AddEllipse等请自学。,Private Sub Form1_Paint(ByVal sender As Object,ByVal e As _ System.Windows.Forms.PaintEventArgs
15、)Handles Me.Paint Dim gp As Graphics=e.Graphics gp.SmoothingMode=SmoothingMode.AntiAlias Dim gpath As New GraphicsPath With gpath.StartFigure().AddLine(10,20,30,50).AddArc(100,30,100,60,30,110).AddLine(80,100,20,80).CloseFigure()End With gp.DrawPath(New Pen(Color.Blue,3),gpath)gp.FillPath(Brushes.Ye
16、llow,gpath)End Sub,使用示例:分析如下代码,并说明执行结果,六、应用实例【例1-1】编写程序,要求在窗体上绘制如图所示图形。三个图形宽度和高度均为120和60,从左至右三个图形左上角坐标分别为(30,10)、(155,10)、(280,10)。第1个图形为直角矩形,后两个图形为导角矩形。第一个矩形填充色为红色,第二个为由红到100透明分量的白水平渐变,第三个为背景由红到100透明分量白水平渐变,图案是黑色线条水平砖。(制作过程略,分析过程见后述内容),问题分析:如何绘制导角矩形?.NET没有提供导角矩形的绘制方法,可以利用GraphicsPath路径对象来解决。具体做法:将该
17、矩形四个直角的导角弧依顺序添加到事先创建好的GraphicsPath对象中,封闭该路径对象后利用Graphics类的FillPath(填充路径)方法和DrawPath(绘制路径)方法对该导角路径对象进行填充和描边便可得到图中导角矩形。,获取导角弧的分析过程如下图所示,上机实践,按图1和图2在窗体上绘制图形(提示:ASCII码为128的字符以“Webdings”字体显示时为人形字符),图1,图2,【任务3:面向对象编程】,一、面向对象的术语1抽象、封装、继承和多态(1)抽象和抽象数据类型(2)封装性(3)继承性(4)多态性,【任务3 子任务1:类的创建与使用】,2对象、类和实例对象:将现实世界中
18、的实体或关系抽象化后形成的基于代码的概念。如用Player对象来表示现实世界中的游戏玩家,或用File来表示计算机硬盘上某个要处理的文件。类:指定义对象的代码。如要用一个Player对象表示一个游戏玩家,首先必须定义Player类,它应包含创建Player对象所必须的代码。,对象是基于某个类创建的,每个对象就是该类的一个实例。,3对象的组成对象的主要组成元素有接口、实现或行为、成员变量或实例变量。(1)接口接口是对象提供给外界访问其内部数据或行为的重要途径。一般指其内部用Public声明的一组方法(Sub或Function过程)、属性(Property过程)、事件和字段(变量)。理论上还可用其
19、它关键字定义属性和方法:Private、Friend、Protected进行定义。,(2)实现或行为方法内的代码称为实现(或称行为)。例如,设计某个类时定义了Days属性作为对象接口的一部分,该方法的实现如下:Private _Days As IntegerPrivate Property Days()As Integer Get Return _Days End Get Set(ByVal value As Integer)_Days=value End SetEnd Property,注:我们可以不改变接口本身就能有效地改变它的行为方式。,(3)成员变量或实例变量成员变量一般指在类内部用P
20、rivate声明的局部变量。如该成员变量是用来保存类中属性的值,则又称为实例变量。,二、使用对象使用对象前必须对其进行声明和实例化。1对象的声明和实例化常见方法有两种。法一:对象声明和实例化分开进行Dim 对象名 As 类名 对象名=New 类名法二:对象声明和实例化在同一条语句中完成Dim 对象名 As New 类名,【例1-2】用代码的方法使窗体在加载时自动添加一个文本框控件,并要求该文本框在窗体的正中间,背景色为粉红色,其上有焦点。(提示:窗体的文本框控件是系统类TextBox 的一个实例化对象)界面设计及代码编写:略,如希望声明的对象可以使用事件要在通用声明段声明带事件的对象。代码如下
21、:Dim WithEvents t As TextBox这样,对象t就可以使用文本框的所有事件了。,2对象的引用类的实例化对象均是采用引用方式。例如:Dim t As New TextBox Dim b As TextBox b=t执行上述代码后,t和b均指向同一个对象的引用。即:t和b实际上是同一个对象。,分析:执行下述代码后t和b的BackColor属性值?3取消对象的引用处理完对象后,应取消对象的引用来表明对该对象的使用已完毕。语法格式为:对象名=Nothing,Dim t As New TextBox Dim b As TextBox b=t t.BackColor=Color.Cor
22、al b.BackColor=Color.Red,执行代码后,t和b的BackColor属性值均为Color.Red。,三、类的创建使用对象前必须先创建类。1创建基类(1)Class基本语法Public Class 类名称 定义该类的变量、方法、属性和事件的相关代码End Class,.NET环境下,类可以在窗体文件、模块文件或类文件中创建。,【例1-3】创建一个表示员工的类Employee类。在窗体文件、模块文件或类文件中输入如下代码:Public Class Employee 定义该类的变量、方法、属性和事件的相关代码End Class,(2)声明成员变量声明成员变量作用是存放类的内部数据
23、,要在Class结构内部声明。【例1-4】创建Employee类,并添加两个成员变量_Name和_BirthDate。代码如下:Public Class Employee Private _Name As String Private _BirthDate As DateEnd Class,注:虽然成员变量前的关键字可以很多种,但一般使用Private。,(3)声明属性属性是专门为设置和获取数据而设计的方法,写在Class结构内部。简单格式Public Property 属性名()As 数据类型 Get 语句块 End Get Set(ByVal Value As 数据类型)语句块 End S
24、et End Property,类型要一致,Set.End Set语句块:在用户为该属性赋值时自动执行,Value用以返回用户设置的值。一般情况下,此语句块中应包含获取用户输入值的语句。GetEnd Get语句块:在用户读取该属性值时自动执行。一般情况下,此语句块中应包含“Return 表达式”或“属性名=表达式”语句,用以返回属性值。,【例1-5】创建Employee类,并添加Name和BirthDate属性。代码如下:,Public Class Employee Private _Name As String 成员变量_Name,用以存放姓名 Private _BirthDate As D
25、ate 成员变量_BirthDate,用以存放出生日期 定义Name属性 定义BirthDate属性 End Class,定义Name属性Public Property Name()As String Get Return _Name 返回属性值 End Get Set(ByVal value As String)获取用户设置的数据Value _Name=value End SetEnd Property,定义BirthDate属性Public Property BirthDate()As Date Get Return _BirthDate 返回属性值 End Get Set(ByVal v
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VB 高级 程序设计 对抗 扫雷 游戏 项目 开发
链接地址:https://www.31ppt.com/p-2864956.html