毕业设计(论文)VB6.0双机互联模拟打飞机游戏设计.doc

上传人:laozhun 文档编号:3977085 上传时间:2023-03-30 格式:DOC 页数:62 大小:407.50KB
返回 下载 相关 举报
毕业设计(论文)VB6.0双机互联模拟打飞机游戏设计.doc_第1页
第1页 / 共62页
毕业设计(论文)VB6.0双机互联模拟打飞机游戏设计.doc_第2页
第2页 / 共62页
毕业设计(论文)VB6.0双机互联模拟打飞机游戏设计.doc_第3页
第3页 / 共62页
毕业设计(论文)VB6.0双机互联模拟打飞机游戏设计.doc_第4页
第4页 / 共62页
毕业设计(论文)VB6.0双机互联模拟打飞机游戏设计.doc_第5页
第5页 / 共62页
点击查看更多>>
资源描述

《毕业设计(论文)VB6.0双机互联模拟打飞机游戏设计.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)VB6.0双机互联模拟打飞机游戏设计.doc(62页珍藏版)》请在三一办公上搜索。

1、毕 业 论 文(设 计)课题名称 双机互联模拟打飞机游戏设计 学 院 信息电子技术学院 专 业 计算机科学与技术 班 级 0109114319 指导教师 学生姓名 佳 木 斯 大 学 教 务 处摘 要打飞机游戏模拟是网络通讯系统,其开发主要包括后网络通讯的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起网络连接,定义好数据协议。而对于后者则要求应用程序功能完备,易使用等特点。 经过分析,我们使用 MICROSOFT公司的 VISUAL BASIC6.0开发工具,利用其提供的各种面向对象的开发工具,尤其是其简单易用的面向对象编成环境和对数据库的方便操作,首先在短时间内建立系统应用原型

2、,然后,对初始原型系统进行需求迭代,不断修正和改进,直到形成用户满意的可行系统。关键词 棋谱; VisualBasic 6.0; 管理; 原型。AbstractThe plane manages system is development two aspects that network management system, its development includes primarily the net establishes with support and the head applies the procedure.Establishes to rise to the former

3、 request the data consistency is strong with the complete, the database that data safety like.But request the latter very much the applied procedure function complete, easy usage etc. characteristics.The system is applicable to the chess fancier.Through analysis, we use the MICROSOFT company VISUAL

4、BASIC6.0 as the development tool, making use of its every kind of the tool of development that provide that OOP, particularly is its use in brief and easily of OOP the plait environment with to the convenient operation of the database, establish in a short time first system application prototype, th

5、en, start to the beginning prototype system proceeding easy, revise continuously with improve, until formation the customer is a satisfied system.KeyWords VisualBasic6.0; Database; Management; Prototype.1 绪论1.1课题背景打飞机。在一次空战中,忽然大雾弥漫,敌我双方各有三架飞机,但是谁也不知道对方飞机的位置。您,作为一名英勇的战斗指挥官,根据炮击的位置和敌人的反应,运用您的智慧和逻辑推理判断

6、敌人飞机的位置并击落之。谁将取得这片蓝天最终的制空权?较量从打飞机游戏网络版开始!这是一款二人对战的网络智力游戏。在该游戏中每人有三架飞机,飞机头部占1个空格,飞机的机翼部分占5个空格,飞机的机舱部分占1个空格,飞机的机尾翼部分占3个空格。在摆放过程中摆放出10*10的棋盘外、飞机的任意部位重叠皆视为无效,需重新摆放。双方轮流使用炮弹,击中飞机的头部为击落整架飞机,击中飞机的其他部位为打伤飞机,当一方的3架飞机的头部都中弹后游戏结束,宣告此方游戏失败。1.2问题的提出随着社会经济的迅速发展和科学技术的全面进步,计算机事业的飞速发展,PC机已经进入千家万户,PC机的使用中游戏占了相当大的比重,现

7、在的计算机不再是单纯的计算,并且随着人们的精神文化的需要互连游戏最终必将被广大PC使用者接受,在互连游戏当中玩家可以体验真实的对手的感觉,告别呆板、一成不变的电脑固定规则。这款双机互连的打飞机模拟游戏需要通过对对手的飞机排部的准确猜测,才能将对手的飞机打掉,可玩性较高,相信大家用过以后一定会喜欢上这款游戏的。2 开发工具简介2.1 编程环境的选择2.1.1 VB6的简单介绍目前,PC桌面操作系统以微软公司的Windows 所占比重最大,所以棋迷乐这一软件也主要面向Windows操作系统,开发工具选择VB6.0。因为微软公司的Visual Basic 6.0是Windows应用程序开发工具,它能

8、与Windows很好的结合,是目前最为广泛的、易学易用的面向对象的开发工具。Visual Basic提供了大量的控件,这些控件可用于设计界面和实现各种功能,减少了编程人员的工作量,也简化了界面设计过程,从而有效的提高了应用程序的运行效率和可靠性。故而,实现本系统VB是一个相对较好的选择。VB中定义函数和事件也是非常简单方便,容易调用,而且VB能够很好的调用Windows的API函数,这在某些方面也减轻了开发者(作者)的负担。微软的JET数据库引擎提供了与数据库打交道的途径,我们是通过它以及Visual Basic 来访问数据库并对其进行各种操作。Visual Basic、Access以及其他微

9、软的软件产品都是通过共用JET数据库引擎,从而给用户提供了丰富的数据类型,在VB6中我们可以用Database对象非常方便的管理数据库。利用VB6开发网络应用程序,更多的是利用Winsock控件来实现,而且很少使用Winsock API,直接使用API对初学者很困难,而且效率也比较低,而使用Winsock控件的效率高很多,而且通俗易懂,Winsock控件对用户来说是不可见的,它提供了访问TCP和UDP网络服务的方便途径。为编写客户或服务器应用程序,不必了解TCP细节,通过设置控件的属性并调用其方法就可以轻易的连接到一台远程计算机上去,并且可以双向交换数据。棋迷乐中的棋子移动就要用到Image控

10、件,而棋盘则要用Picture控件装载,棋谱目录的显示用到了List控件,要实现网络用Winsock控件就比较简单,对棋子的操作控制,棋谱的读取,网络的实现也用到了各控件的属性、事件和方法,如Click , Muosedown , Dataarrivel等。3 需求分析3.1 系统需求识别3.1.1 用户要求实现网络中的互连模拟打飞机游戏。在游戏中实现射击的伴随声音效果,实现玩家的聊天功能,可丰富游戏的可玩性。3.1.2可行性分析经济上一台多媒体PC价格可控制在3,500¥以内。技术上使用VB6.0开发环境实现网络通讯及图形处理不存在问题。项目背景:现在PC机已经进入千家万户,PC机的使用中游

11、戏占了相当大的比重,现在的计算机不再是单纯的计算,并且随着人们的精神文化的需要网络上模拟现实游戏将被广大PC使用者接受。3.2功能需求3.2.1 基本功能能够判断操作者是否按照游戏规则走棋,每人轮流进行射击,在对方以10*10的棋盘上。 当一方的3个飞机都被击落(就是3个飞机的头部都已经中弹)要结束该局,并发出胜负通告。能够实现双机互联进行网上对战,并且可以实时与对手交流聊天。3.2.2 其他功能 操作者“射击”时要发出现实中射击声音,使该软件更接近对战。3.3 其他需求3.3.1 性能需求 该软件的输入时具有隐藏性,使用者在输入飞机位置的时候只点击鼠标,不会造成输入错误,聊天时不能发送空消息

12、。可以重新设置飞机摆放位置及样式。3.2.2 环境需求硬件需求:CPU主频200MH以上,建议800MH。32M以上内存,建议128M。VGA以上显卡,800X600及以上分辨率。输入输出标准WINDOWS鼠标键盘。10M及以上网卡(联机游戏使用)软件需求:WINDOWS98及以上操作系统。3.3.3 可靠性需求所有数据均经过检查判断,可靠性很高。3.3.4 用户界面需求用户界面友好,各功能通过按钮控制一目了然。3.3.5 资源使用需求开发人员:一人(作者),指导教师:一人(常老师)软件使用ACCESS数据库,内存占用小于256K。开发设备:多媒体电脑一台。开发环境:WINDOWS2003操作

13、系统 + VB6.04系统总体设计4.1 系统结构4.1.1 基本功能模块划分该系统包括用户界面处理,输入处理,输出处理,处理与控制功能,输出处理,网络功能处理和维护与自测试如图2.1用户界面处理输入 处理处理与控制功能输出 处理网络功能处理维护与自测试图4.1基本功能模型该模块主要实现的功能有对飞机的样式进行规范,四种样式用来防止操作者在操作过程中画错,造成数据格式不统一。4.2样式处理模块的实现方案4.2.1四种样式的建立在标准游戏里,主要有四种标准样式,如图:图4.2 飞机样式演示。如图:飞机样式1:的确定使用四个checkbox控件用来判断操作者放置当前飞机使用哪种样式,在操作者摆放飞

14、机位置时根据鼠标位置和飞机样式在相应位置画出操作着预想的飞机4.2.2样式与字符串的转换方法在该程序中qz的index与飞机是对应的,当点击飞机时根据其index属性就可以判断是那种飞机。还有qz的visabled属性可判断对应的飞机是否被覆盖,被打掉掉了值为false,否则为true。下面说明对飞机放置位置的计算方法如图4.2.1,飞机在棋盘图4.3棋盘坐标与棋子号的对应关系)这个picturebox 这个控件里,该控件左上角坐标是(0,0),qz(index)的宽度和高度都是600这样每个飞机的top属性和left属性都是600的整数倍,同理,这个倍数乘以600就是该飞机的top和left

15、对应的值,我在保存飞机时就是用到了qz的index属性和top、left属性值相对600的倍数组成字符串保存到数据库中。组字符串的规则是先定义一个字符串pubqpstr,从qz(0)开始,判断qz(index)的visabled属性,如果是false则跳过判断下一个qz(),如果是true则加上left相对600倍数再加上top相对600的倍数,如果index9在pubqpstr后加上index,否则在pubqpstr后加0再加index,接下来判断下一个qz(index)直到3个飞机都判断完将字符串存入数据库。图4.3摆棋窗体4.2.3如何从数据库中删除修改棋谱的研究从数据库中删除某棋谱就是

16、在数据库中删除选中的棋谱对应的行,主要用SQL语句删除与选中的棋谱编号相同行来实现修改棋谱的属性就是对数据库中棋谱属性标记字段good的修改,使用SQL语句对选中的棋谱编号相同行的good字段更新成相应的标记值。棋谱管理模块中选择修改棋谱窗体界面如图4.2.3图4.4选择棋谱窗体该界面用listbox将数据库中的棋谱显示给用户,用户只要单击某一棋谱就会选中该棋谱并在该窗体中的棋盘上摆上该棋谱作为预览,如果用户双击某棋谱就退出选择棋谱窗体,返回到主窗体,同时将棋谱摆到主窗体棋盘上。5 系统详细设计5.1样式处理模块的功能概述该模块主要实现的功能有对飞机的样式进行规范,四种样式用来防止操作者在操作

17、过程中画错,造成数据格式不统一。5.2样式处理模块的实现方案5.2.1四种样式的建立在标准游戏里,主要有四种标准样式,如图:图5.1使用四个checkbox控件用来判断操作者放置当前飞机使用哪种样式,在操作者摆放飞机位置时根据鼠标位置和飞机样式在相应位置画出操作着预想的飞机。 5.2.2样式与字符串的转换方法在该程序中qz的index与飞机是对应的,当点击飞机时根据其index属性就可以判断是那种飞机。还有qz的visabled属性可判断对应的飞机是否被覆盖,被打掉掉了值为false,否则为true。下面说明对飞机放置位置的计算方法如图4.2.1,飞机在棋盘图4.2.1棋盘坐标与飞机形态的对应

18、关系这个picturebox 这个控件里,该控件左上角坐标是(0,0),qz(index)的宽度和高度都是600这样每个飞机的top属性和left属性都是600的整数倍,同理,这个倍数乘以600就是该飞机的top和left对应的值,我在保存飞机时就是用到了qz的index属性和top、left属性值相对600的倍数组成字符串保存到数据库中。组字符串的规则是先定义一个字符串pubqpstr,从qz(0)开始,判断qz(index)的visabled属性,如果是false则跳过判断下一个qz(),如果是true则加上left相对600倍数再加上top相对600的倍数,如果index9在pubqps

19、tr后加上index,否则在pubqpstr后加0再加index,接下来判断下一个qz(index)直到3个飞机都判断完将字符串存入数据库。图5.2摆棋窗体。5.2.3如何从数据库中删除修改棋谱的研究从数据库中删除某棋谱就是在数据库中删除选中的棋谱对应的行,主要用SQL语句删除与选中的棋谱编号相同行来实现修改棋谱的属性就是对数据库中棋谱属性标记字段good的修改,使用SQL语句对选中的棋谱编号相同行的good字段更新成相应的标记值。棋谱管理模块中选择修改棋谱窗体界面如图4.2.3图5.3选择棋谱窗体该界面用listbox将数据库中的棋谱显示给用户,用户只要单击某一棋谱就会选中该棋谱并在该窗体中

20、的棋盘上摆上该棋谱作为预览,如果用户双击某棋谱就退出选择棋谱窗体,返回到主窗体,同时将棋谱摆到主窗体棋盘上。5.3网络模块的功能概述该模块主要在联机状态时使用,主要实现数据的发送,接收,对数据的分析。5.4 winsock控件的介绍目前在Windows操作系统中,大部分网络应用层程序都是通过Winsock网络编程接口实现的。Winsock控件对用户来说是不可见的,它提供了访问TCP和UDP网络服务的方便途径。Winsock控件的主要用到的属性:属性名类型/值描述RemoteHostIpstring远程计算机的IPRemoteHostPortlong远程计算机的端口号Protocol0/1使用的

21、协议Winsock控件的主要用到的方法:方法名应用说明senddata发送数据,将字符串传送到对方Dataarrival收到数据,引发其它事件发生getdata把接收的数据存到字符串变量5.5网络模块的实现方案5.5.1传输字符串数据的约定由于网络传输的数据有用户之间的对话,有棋谱,还有用户每走一步棋也要传给对方一个走棋的字符串就是由选择的棋子信息和要杀的棋子信息组成,所以网络传输字符串要标记这三种不同的字符串,在这里使用2位字符标记1a标识棋谱字符串,2a标识走棋的字符串,3a标识用户对话。图5.4 数据传送页面设置5.5.2 发送数据的实现由于发送数据有三种,所以在发送前要在字符串前加上标

22、识位,这一过程要在引发该模块的过程完成,如发送对话,走了一步,传送棋谱中就把标识位添加上。5.5.3 接收数据的实现由于传输的都是字符串,所以接收到数据直接存入一个字符串变量,然后分析该字符串的标识位,根据分析结果,来调用相应的过程,实现相应的功能。 5.6控制模块的基本功能该模块主要实现玩家射击的控制,控制双方交替射击,当一方的三架飞机的头部都被击中的时候就表示此方已经失败,宣告游戏结束。5.7游戏的相关规则在该游戏中每人有三架飞机,飞机头部占1个空格,飞机的机翼部分占5个空格,飞机的机舱部分占1个空格,飞机的机尾翼部分占3个空格。在摆放过程中摆放出10*10的棋盘外、飞机的任意部位重叠皆视

23、为无效,需重新摆放。双方轮流使用炮弹,击中飞机的头部为击落整架飞机,击中飞机的其他部位为打伤飞机,当一方的3架飞机的头部都中弹后游戏结束,宣告此方游戏失败。图5.5 规则演示代码如下:If (a 2 And b 2) Or (a 7) ThenMsgBox 该位置放不下该样式飞机Exit FunctionEnd IfIf (a 7 And b 7 And b 7) ThenMsgBox 该位置放不下该样式飞机Exit FunctionEnd IfForm1.Picture1(0).FillColor = newcolorForm1.Picture1(0).ForeColor = newcolo

24、rMsgBox newcolorIf style = 0 ThenIf a 7 ThenMsgBox 该位置放不下该样式飞机Exit FunctionEnd IfIf marray(a, b) = 0 And marray(a - 2, b + 1) = 0 And marray(a - 1, b + 1) = 0 And marray(a, b + 1) = 0 And marray(a + 1, b + 1) = 0 _And marray(a + 2, b + 1) = 0 And marray(a, b + 2) = 0 And marray(a - 1, b + 3) = 0 And

25、 marray(a, b + 3) = 0 And marray(a + 1, b + 3) = 0 Thenmarray(a, b) = 2: marray(a - 2, b + 1) = 1: marray(a - 1, b + 1) = 1: marray(a, b + 1) = 1: marray(a + 1, b + 1) = 1 marray(a + 2, b + 1) = 1: marray(a, b + 2) = 1: marray(a - 1, b + 3) = 1: marray(a, b + 3) = 1: marray(a + 1, b + 3) = 1con_plan

26、e = con_plane + 1If con_plane = 3 Then Form1.cmd_ready.Enabled = TrueForm1.Picture1(0).Line (a * d, b * d)-(a * d + d, b * d + d), newcolor, BFForm1.Picture1(0).Line (a - 2) * d, (b + 1) * d)-(a + 2) * d + d, (1 + b) * d + d), newcolor, BFForm1.Picture1(0).Line (a * d, (b + 2) * d)-(a * d + d, (b +

27、2) * d + d), newcolor, BFForm1.Picture1(0).Line (a - 1) * d, (b + 3) * d)-(a + 1) * d + d, (b + 3) * d + d), newcolor, BFElseMsgBox 该位置放不下该样式飞机End IfElseIf style = 1 ThenIf a 7 ThenMsgBox 该位置放不下该样式飞机Exit FunctionEnd IfIf marray(a, b) = 0 And marray(a - 2, b - 1) = 0 And marray(a - 1, b - 1) = 0 And

28、marray(a, b - 1) = 0 And marray(a + 1, b - 1) = 0 _And marray(a + 2, b - 1) = 0 And marray(a, b - 2) = 0 And marray(a - 1, b - 3) = 0 And marray(a, b - 3) = 0 And marray(a + 1, b - 3) = 0 Then marray(a, b) = 2: marray(a - 2, b - 1) = 1: marray(a - 1, b - 1) = 1: marray(a, b - 1) = 1: marray(a + 1, b

29、 - 1) = 1 marray(a + 2, b - 1) = 1: marray(a, b - 2) = 1: marray(a - 1, b - 3) = 1: marray(a, b - 3) = 1: marray(a + 1, b - 3) = 1con_plane = con_plane + 1If con_plane = 3 Then Form1.cmd_ready.Enabled = TrueForm1.Picture1(0).Line (a * d, b * d)-(a * d + d, b * d + d), newcolor, BFForm1.Picture1(0).L

30、ine (a - 2) * d, (b - 1) * d)-(a + 2) * d + d, (b - 1) * d + d), newcolor, BFForm1.Picture1(0).Line (a * d, (b - 2) * d)-(a * d + d, (b - 2) * d + d), newcolor, BFForm1.Picture1(0).Line (a - 1) * d, (b - 3) * d)-(a + 1) * d + d, (b - 3) * d + d), newcolor, BFElseMsgBox 该位置放不下该样式飞机End IfElseIf style

31、= 2 ThenIf b 7 ThenMsgBox 该位置放不下该样式飞机Exit FunctionEnd IfIf Not marray(a, b) And marray(a + 1, b - 2) = 0 And marray(a + 1, b - 1) = 0 And marray(a + 1, b) = 0 And marray(a + 1, b + 1) = 0 _And marray(a + 1, b + 2) = 0 And marray(a + 2, b) = 0 And marray(a + 3, b - 1) = 0 And marray(a + 3, b) = 0 And

32、 marray(a + 3, b + 1) = 0 Thenmarray(a, b) = 2: marray(a + 1, b - 2) = 1: marray(a + 1, b - 1) = 1: marray(a + 1, b) = 1: marray(a + 1, b + 1) = 1 _: marray(a + 1, b + 2) = 1: marray(a + 2, b) = 1: marray(a + 3, b - 1) = 1: marray(a + 3, b) = 1: marray(a + 3, b + 1) = 1con_plane = con_plane + 1If co

33、n_plane = 3 Then Form1.cmd_ready.Enabled = TrueForm1.Picture1(0).Line (a * d, b * d)-(a * d + d, b * d + d), newcolor, BFForm1.Picture1(0).Line (a + 1) * d, (b - 2) * d)-(a + 1) * d + d, (b + 2) * d + d), newcolor, BFForm1.Picture1(0).Line (a + 2) * d, (b) * d)-(a + 2) * d + d, (b) * d + d), newcolo

34、r, BFForm1.Picture1(0).Line (a + 3) * d, (b - 1) * d)-(a + 3) * d + d, (b + 1) * d + d), newcolor, BFElseMsgBox 该位置放不下该样式飞机End IfElseIf style = 3 ThenIf b 7 ThenMsgBox 该位置放不下该样式飞机Exit FunctionEnd IfIf Not marray(a, b) And marray(a - 1, b - 2) = 0 And marray(a - 1, b - 1) = 0 And marray(a - 1, b) = 0

35、 And marray(a - 1, b + 1) = 0 _And marray(a - 1, b + 2) = 0 And marray(a - 2, b) = 0 And marray(a - 3, b - 1) = 0 And marray(a - 3, b) = 0 And marray(a - 3, b + 1) = 0 Thenmarray(a, b) = 2: marray(a - 1, b - 2) = 1: marray(a - 1, b - 1) = 1: marray(a - 1, b) = 1: marray(a - 1, b + 1) = 1 _: marray(a

36、 - 1, b + 2) = 1: marray(a - 2, b) = 1: marray(a - 3, b - 1) = 1: marray(a - 3, b) = 1: marray(a - 3, b + 1) = 1con_plane = con_plane + 1If con_plane = 3 Then Form1.cmd_ready.Enabled = TrueForm1.Picture1(0).Line (a * d, b * d)-(a * d + d, b * d + d), newcolor, BFForm1.Picture1(0).Line (a - 1) * d, (

37、b - 2) * d)-(a - 1) * d + d, (b + 2) * d + d), newcolor, BFForm1.Picture1(0).Line (a - 2) * d, (b) * d)-(a - 2) * d + d, (b) * d + d), newcolor, BFForm1.Picture1(0).Line (a - 3) * d, (b - 1) * d)-(a - 3) * d + d, (b + 1) * d + d), newcolor, BFElseMsgBox 该位置放不下该样式飞机End IfEnd IfExit Functionerrhandle:

38、MsgBox 该位置放不下该样式飞机End Function5.8 主窗体功能实现5.8.1 主窗体的设计在该软件中使用标准exe窗体,在窗体中加入一个picturebox控件qp,在qp中加入一个image控件,一个winsock控件,六个command控件,一个command数组(“断开连接”和“连接网络”),一个listbox控件,两个文本框,另一个image控件在窗体上以及一些标签(略)。该窗体如图:图5.6主窗体的界面控件名称、类别、主要属性值及作用名称类别Caption/index作用cmdconnect(0)按钮连接网络0连接网络的cmdconnect(1)按钮断开网络1断开网络

39、的cmdhost按钮建主机开放本地端口监听等待其他用户连接cmdsend按钮发送当将要说的话打到文本框后用来发送Command1按钮退出退出程序diashow文本框显示对话用的Judgeqz(1)图像框1显示时表示此方该射击List1列表框List1显示用户每步走的是什么的qz图像框0装载飞机图形skttcpchatclientWinsock控件网络控件用来实现网络通信的主要控件txtdatatosend文本框放要发送的话的Skttcpchatclient的protocol属性设成0 选择tcp协议进行连接。Skttcpchatclient的locolport属性设成2004。Skttcpch

40、atclient的remoteport属性设成2008。这样该窗体就基本建立好了,该窗体的主要功能实现就靠代码控制了。5.8.2各控件事件过程的功能Form_Load事件完成初始化功能,主要有用load语句装载棋子控件,将棋子的图像装载到相应的qz(index)中,读出数据库中默认棋谱的数据,并且将棋谱摆到棋盘上Form_Unload事件退出整个程序。cmdaddqp_Click()事件调用添加棋谱的窗体。cmdchoose_Click()事件调用选择棋谱的窗体。cmdconnect_Click(Index As Integer)事件根据index判断是连接网络还是断开网络,如果index=0

41、则连接网络,index=1则断开网络同时改变相应的控制变量如beconnected。cmdhost_Click()事件打开本地的端口进行监听,等待其他用户连接,同时改变相应控制变量的值。cmdsend_Click()事件把要发送的文本内容发送到对方。Command1_Click()退出程序。qp_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)该事件是在本程序中非常重要的事件,通过它来处理飞机是否放到棋盘空白处的事件。通过该事件能得到用户要将炮弹射到哪的坐标同时调用qz_Click 32过程判断用户

42、是否违规,这里参数是32,是一个虚拟的位置,这样做可以体现出代码的重用性直接调用击中的模块而不用重新编码。qz_Click(Index As Integer)该事件是整个程序中最为重要的事件之一,使用频率也是最高的,当第一次点击飞机时时选择一个带走飞机,再点击另一飞机或棋盘时是选中的飞机要做到的目标,这时该事件通过第一次点击的飞机的index属性判断选择的是什么飞机,在根据前后飞机坐标判断用户是否违规,不违规则调用qzmov()事件把飞机放到目标位置,否则不掉用,也就实现了禁下了。该事件中的对控制变量的使用非常多,而且也是最复杂的事件,以后要详细介绍。skttcpchatclient_Clos

43、e()网络控件关闭的事件,在该事件里要修改一些控制参数。skttcpchatclient_Connect()该事件主要是修改beconnect变量,这在qz_click()事件中用来控制是否是单机推演还是联网对弈的。skttcpchatclient_ConnectionRequest(ByVal requestID As Long)事件是用来接受用户连接的事件,通过它与其他用户建立起TCP连接,就实现了联机。skttcpchatclient_DataArrival(ByVal bytesTotal As Long)事件也是程序中最重要的事件,通过它接收对方发送来的数据,并且判断是什么数据,然后

44、传送到相应的处理过程中处理。5.9选择棋谱窗体frmchoose的功能实现5.9.1选择棋谱窗体设计在窗体中加入一个picturebox控件qp,在qp中加入一个image控件qz,一个Sstab控件,一个listbox控件数组,五个按钮以及一些标签。选择棋谱窗体设计如图4.2.35.9.2 各控件事件过程的功能Form_Load()初始化棋盘棋谱,与mainform窗体的相似。Cmddel_Click()从数据库中删除选中的棋谱。Command1_Click()将选择的棋谱摆放到mainform窗体的棋盘上,然后退出该窗体。Command2_Click()返回mainform窗体。cmddo

45、wn_Click()将选中的棋谱的数据库中的good字段改成false。cmdup_Click()将选中的棋谱的数据库中的good字段改成true。qplist_Click(Index As Integer)将选中的棋谱摆放到该窗体的棋盘中,给用户预览该棋谱。qplist_DblClick(Index As Integer)调用Command1_Click()直接选择双击的棋谱。5.10添加棋谱窗体的功能实现5.10.1 添加棋谱窗体的设计在窗体中加入一个picturebox控件qp,在qp中加入两个image控件qz,两个文本框控件,三个按钮控件,一个复选框及一些标签。添加棋谱窗体设计如图4

46、.2.25.10.1各控件事件过程的功能Form_Load()初始化窗体中的image控件和picturebox控件。cmdsave_Click()将摆好的飞机棋谱生成字符串存入数据库中。Command1_Click()清空棋盘上的飞机,重新初始化该窗体。Command2_Click()返回mainform窗体。extqz_Click(Index As Integer)选中要摆到棋盘上的棋飞机。mainqz_MouseDown(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)当某飞机摆错了时,该事件可以把摆错的飞机清除掉,以便重新选择正确位置摆放。addqp_MouseDown(Button As Integer, Shift As Integer, X As Single, Y

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

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号