




已阅读5页,还剩28页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目 录第一章 游戏开发的现状分析11.1游戏开发现状11.2 游戏开发中存在的问题2第二章 游戏开发的技术基础32.1 Visual Basic技术32.1.1游戏开发软件的介绍32.1.2 Visual Basic概述32.2 Visual Basic的编程环境42.2.1 Windows下的Visual Basic编程环境42.2.2 面向对象的编程42.2.3 VB在系统中的应用62.3 小结9第三章 系统总体规划103.1 系统功能简介103.1.1 24点纸牌简介103.1.2 拼拼图简介103.2 系统开发方法113.2.1 24点纸牌的开发123.2.2 拼拼图的开发213.3 系统开发环境253.3.1 开发平台253.3.2 运行平台253.3.3 输入输出设计253.4 小结26第四章 系统功能模块设计274.1 24点纸牌游戏公共模块274.2 拼拼图公共模块294.3 小结30第五章 总结与展望305.1 全文总结305.2 展望31参考文献31致 谢3331第一章 游戏开发的现状分析1.1游戏开发现状近两年来中国游戏产业蓬勃发展,新作品不断问世。吸引了不少有志之士,他们很愿意加入到中国游戏软件开发者的行列中来,但真正能如愿者少之又少,所以现在我们的游戏产业呈很奇特的现象,一方面是急需新血加入,而另方面却是真正能动手开发游戏的人才却如凤毛麟角。造成这种现象的原因,是游戏制作这一新兴的学科在国内才刚刚兴起,而许多相关资料在国内还很缺乏。大多数抱有美好愿望的朋友正是因为缺少这些资料才无法如愿以偿。有鉴于国内大多数计算机刊物虽已经开办了游戏专栏,但登载游戏攻略的文章多,刊出的游戏制作文章少的局面。自从世界上第一台电子计算机问世以来,电脑游戏就作为一种新生的特有的文化媒体而存在着,电脑游戏世界是一片五彩缤纷的世界,这个世界里每时每刻都发生着许多千奇百怪的故事,因此吸引着无数玩家去探寻、去寻觅。可能会有许多朋友这样问,这么好玩的游戏是谁做出来的呢?答案只有一个,当然是由人所做出来的。电脑游戏是由一群或一组想象力丰富并充满工作热情的小伙子们齐心合力做出来的。说到电脑游戏制作业可算的上是一种新兴的产业,但随着近些年来计算机产业突飞猛进的发展,电脑游戏制作业在国外已经成为继电影娱乐业后的又一大娱乐产业,互动式的游戏参与过程与声光动画特技效果是传统电影业所难与之相匹敌的,一时间竟引无数“英雄”为之折腰,电脑游戏产业因此而受益非浅。例如著名的3D射击游戏DOOM毁灭战士从问世以来就深受玩者欢迎,风靡全球、久盛不衰。而这套游戏程序的制作者就以其所获收益为后盾,在一个月间买下了三辆名贵跑车,好莱坞探奇报在一篇评论文章中认为电脑游戏业将超过电影业成为第一大娱乐产业,并将前述事例作为其依据而引于报章。 眼见国外电脑游戏产业经过这几年的发展,取得长足的进步,已经日益壮大,而我国民族电脑游戏产业却因起步较晚,尚还仅处于萌芽阶段。一些有识之士不由得大声疾呼:“赶快觉醒吧!中国游戏。”面对此种情况,任何一位有民族心的朋友都希望中国游戏产业尽快成长壮大,能早日与其它游戏强国一道跻身于世界游戏之林。美好的想法终究也只是想法而已、与国外相比我们从人员素质到开发经验都很欠缺,如何在短期内赶上国外电脑游戏产业的发展水平,才是每位有爱国心并立志于游戏软件开发的仁人志士所应该共同面对的问题。近年来在系统可靠性研究领域中兴起的“可靠性是极计出来的”的概念,在游戏设计工作中确实给人以实实在在的感受游戏系统的好与坏,从根本上说都是设计出来的,其它的多属于实现和质量保证方面的工作。在当前设计一部创造性的游戏产品越来越难的情况下,游戏设计工作和人选也就显得越来越重要了。1.2 游戏开发中存在的问题游戏制作是一门系统的开发工程,他需要多工种的配合,我们将游戏制作与盖高楼相比,参与盖楼的有蓝图设计师、建筑师、装磺制作师等工种,盖一幢高楼首先需要有一幅详细的制作蓝图,它说明了高楼所建的位置、高楼所表现的设计风格、每一层的建筑格局等,建筑师将根据设计蓝图的要求进行施工,当楼宇的基本构造已经完成后,装璜制作师则按照设计蓝图的指示,开始对建筑的外观进行装饰美化,经过以上几步,一幢美观的高楼就可以峻工交付使用了。游戏同样如此,制作一部游戏软件需要有策划、程序制作、美工音效等多工种的配合,策划如同蓝图设计师,它将决定一部游戏的内涵与外在表现方式,而程序制作则起到了建筑师的作用,它一样要根据策划的要求,将程序及数据结构如同建筑一样构造好,那美工音效呢?它同建筑高楼的装璜制作师一样要对整个游戏的外在表现讲行制作润色。 当然,在游戏设计过程中,或多或少都会遇到一些问题。比如,各工程不能直接连接,要通过shell命令来连接各个工程;还有在算法的代码编写中经常会出现错误等。在这个设计制作过程中,让我知道了如何运用Visual Basic来设计游戏,同时也增强了解决问题的能力。第二章 游戏开发的技术基础2.1 Visual Basic技术2.1.1游戏开发软件的介绍目前可以说进行游戏开发的软件很多,可以说每种软件都有其自身的优点,但是Visual Basic却因其许多优点越来越受到游戏开发程序员们的青睐。2.1.2 Visual Basic概述随着Visual Basic的发展,它已小仅是一种编程语言,而且可看成是一部生成应用程序的“机器”。没有一种开发环境能像Visual Basic(及Visual Studio)一样提供数晕庞大、种类繁多的功能。使用它单个程序开发人员能在几分钟内开发出一个简单的应用程序,而一个开发小组则能开发出一个结构复杂、功能齐全的应用程序来。Visual Basic能使使用者树立面向对象的编程思想,否则开发出的程序只能停留在几年前的水平上,虽然许多人声称BASIC语言不是面向对象的编程语言,或者至少不如其他语言那样纯粹,但无庸置疑,使用其他工具的编程效率都低于Visual Basic。值得一提的是,由于使用Visual Basic开发应用程序时存在千变万化的编程方式,因此很容易出现拼凑的现象。这样的程序当然也能够运行,但绝对属于一种比较不完善的设计方法。尽管使用Visual Basic能获得比使用其他工具更高的编程效率,我们仍然需要遵循一些规则以开发出思路清晰的产品。提高编程技巧的一个关键在于尽量多地掌握Visual Basic用于创建类和ActiveX组件的功能,这种架构能使程序员进一步以面向对象的方式来思考问题。那么,为什么要使用Visual Basic呢?原因其实很简单,因为我们要解决问题。2.2 Visual Basic的编程环境2.2.1 Windows下的Visual Basic编程环境在Windows环境下,用户只需移动鼠标,单击一些按钮,或者选择菜单中的某些命令来实现某些操作,在程序运行过程中还会出现一些“对话框”,引导用户进行某些选择和操作。熟悉Windows的用户对此深有感触。Microsoft于1991年推出了Visual Basic 1.0版本。既保留了BASIC语言简单易用的优点,又充分利用了Windows提供的图形环境,提供了崭新的可视化设计工具。Microsoft的Visual Basic 6.0是Windows应用程序开发工具,是目前最为广泛的、易学易用的面向对象的工具。Visual Basic提供了大量的AXTIVE控件,这些控件可用于设计界面和实现各种功能,减少了编程人员的工作量,也简化了界面设计过程,从而有效地提高了应用程序的运行效率和可靠性。故而,实现本系统VB是一个相对好的选择。2.2.2 面向对象的编程在面向对象的程序设计中,“对象”是系统中的基本运行实体,它封装了数据和操作。对象的性质和状态特征称为“属性”,同类型的对象具有相同的属性。当要特制某一具体的对象时,这些属性就有了具体的值。不同对象的不同属性值描述了对象的特征。这些值就是对象的数据。同类对象的抽象称为“类”。对象不会无缘无故地执行某个操作,只有在接受别的对象请求时,才会进行某一操作。这种请求对象执行某一操作或回答某些信息的要求称为“消息”或“事件”。对象接到消息所执行的程序称为事件驱动程序。VB的事件驱动程序都表示为“过程”。事件驱动过程可以包括对象的调用和各种VB语言的语句。VB的工具箱为程序员提供了一套界面设计常用的对象模子类,它们的属性没有具体数值。当我们把工具箱的某个“拖动”或双击到窗体上时,系统以这个模子的形式赋予它各种初始值,构造一个实在对象。这些属性值可以由用户修改。VB不仅为用户提供了一套标准控件工具,还允许程序员添加新的控件工具以及用VB程序设计语言设计对象。程序员在VB平台上开发一个应用程序,要完成的工作就是:需求分析:对要解决的问题进行数据描述和功能描述。界面设计:根据应用程序的功能和用户的特点,设计界面。包括建立窗体、在窗体上建立各种图形对象并设计他们的属性值。设计时间驱动程序:为各种对象编写某事件发生时执行的程序代码。测试:一个应用程序往往要经过反复的测试、修改才能交付使用。实现菜单选项:VB的集成开发环境或称IDE,有多个部分组成,包含了标题栏、菜单栏、工具栏、控件栏以及窗体设计器窗口、属性窗口、代码窗口、窗体布局等。覆盖了应用程序的设计、编辑、编译和调试的所有功能。VB通过工程来组织应用程序的开发,使用工程来管理构成应用程序的所有文件。一个程序一般由若干窗体、标准模块以及应用环境组成。系统通过工程菜单对工程进行管理。系统允许同时打开和管理多个工程。用鼠标单击某个菜单项,即可打开该菜单,然后用鼠标单击菜单中的某一条,就执行相应的命令,VB是汉化的,所有的菜单命令都以汉字标出。实现工具栏:快捷工具栏以图标形式提供了部分常用的菜单命令的功能,用鼠标指向它时显示工具按钮的名称和功能。应用时非常方便的。帮助:VB的联机帮助是一个较为完善的帮助系统,帮助菜单的各个命令用于启动这个系统,同时还具有通向Internet上有关VB站点的菜单选项。VB联机帮助系统包括几乎所有的VB语言参考手册中的信息内容以及数以百计的程序示例和几十相当有用的表格。VB联机帮助系统可以进行上下文相关查询,即用户可以在任何时候按下F1键,查看与当前进行的工作相关的帮助。这是一个非常有用的功能,也是学习和使用VB过程中的一个有利工具。关于系统:由以上关于VB的介绍我们可以了解到:应用VB帮助我们实现教师排课和教室安排优化管理系统是非常方便、可靠、有效的方案。2.2.3 VB在系统中的应用1.创建应用程序的主要步骤(1)创建应用程序的界面界面是用户和程序交互的桥梁,用VB创建的标准的Windows应用程序的界面一般由窗体和按钮、菜单、文本框和图象框等构成。根据程序的功能要求和用户与程序之间的信息交流的需要,来确定需要哪些对象,规划界面的布局。(2)设置界面上各个对象的属性根据规划的界面要求设置各个对象的属性,比如对象的面貌、名称、颜色、大小等。大多数属性取值既可以在设计时通过属性窗口设定,也可以在程序代码中通过编程早程序运行时修改。(3)编写程序响应的程序代码界面仅仅决定程序的外观,设计完界面后就要通过“代码编辑器”窗口来添加代码,实现一些在接受外界信息后得到的响应、信息处理等任务。(4)保存工程一个VB程序就是一个工程,在设计一个应用程序时,系统会建立一个扩展名为.vbp的工程文件,工程文件包含了该工程所建立的所有文件的相关信息,保存工程就同时保存了该工程的所有相关文件。比如当设计界面时产生的窗体被保存在扩展名为.frm和.frx的窗体文件中。在打开一个工程时,在工程中的所有相关文件同时被装载。(5)运行和调试程序通过“运行”菜单中的选项来运行程序,当程序出现错误时,VB系统可提供信息提示,也可通过“调试”和“运行”菜单来查找和排除错误。(6)生成可执行程序为了使程序可以脱离VB环境来运行程序,通过“文件”菜单中的“生成工程1.exe”命令来生成可执行(.exe)。此后即可直接执行该文件。在生成执行文件后,再通过安装向导将所有相关文件打包,就可以生成一个软件产品在Windows环境下安装独立运行。2.创建用户界面(1)对象VB的对象有自己的属性、方法、事件,可以把属性看作一个对象的性质,把方法看做对象的动作,把时间看作对象的响应。VB是一种面向对象的编程语言,通过对属性、方法和事件的编程来实现各种功能。(2)对象的属性属性是对象的数据,用来表示对象的状态。属性有属性值,改变对象的属性值就可以改变对象的状态。属性的设置可以在“属性“窗口中完成,也可以在运行时可设置的属性为读写属性,只能读取的属性叫只读属性。语法: 对象名.属性名=表达式 如果省略对象名则对象为当前的窗体(3)对象的方法对象的方法决定了对象要执行的动作,方法中的代码是看不见的,可通过调用来使用某个对象的方法语法:对象名.方法名(参数1,参数2,)(4)对象的事件时间是对象的响应,VB的应用程序是由事件驱动的。也就是说,只有当事件发生时,响应事件的程序才会运行。如果没有事件的发生,则整个程序就处于停滞状态。在VB中,事件是能被对象识别的动作。VB编程的核心就是为每个要处理的事件编写相应事件的过程代码。(5)创建窗体窗体的属性在创建工程时,VB为自动加入的空白窗体设置了默认属性。设计窗体的第一步是设置它的属性。窗体的属性很多,按类可分为:.杂项属性.外观属性.位置属性.行为属性.字体属性.DDE属性.缩放属性窗体的方法窗体有很多方法,通过代码中调用来执行。窗体最常用的是Show方法,用于显示窗体。 常见的方法还有:Hide 隐藏窗体,使窗体不可见Refresh 刷新窗体Move 移动窗体Print 在窗体中显示文本Line,Circle 在窗体中绘制直线、矩形和圆窗体的事件窗体作为对象能够对事件做出响应Activate和Deactivate事件Initialize事件Load事件Unload事件Click和DblClick事件Resize事件界面样式SDI界面 单文档界面MDI界面 多文档界面(6)控件VB的控件分为内部控件、ActiveX控件和可插入对象三类。内部控件内部控件是又VB本身提供的控件,也称常用控件,这些控件通常显示在控件箱中。ActiveX控件ActiveX控件是VB控件箱中扩充部分,这些控件在使用前必须添加到工具箱中。可插入对象可插入对象是由其他应用程序创建的对象,利用可插入对象,就可以在VB程序中使用其他应用程序的对象。(7)常用控件如:文本框、标签框、组合框、复选框、命令按钮等,(8)控件数组控件数组是一组具有相同名称、类型和事件过程的控件。一个控件数组至少应有一个元素,元素的个数最多可达32767。同一控件数组可以设置不同的属性值。在设计时,控件数组比直接向窗体添加多个同类型的控件占用的资源少,控件数组中的控件元素可以共享代码。控件数组常用于实现菜单控件和选项按钮分组。2.3 小结本章主要介绍了此次游戏开发所用的技术软件Visual Basic进行了一定的介绍。同时对Visual Basic的优点,现今的发展情况,所拥有的功能给出了说明。还说明了这次游戏设计中Visual Basic的编程环境是在Windows,主要是面向对象的编程。还介绍了Visual Basic在系统中的应用。第三章 系统总体规划3.1 系统功能简介3.1.1 24点纸牌简介任意给的四张扑克牌(不包括大小王),只能够用加、减、乘、除以及适当的括号连接着四张牌使得结果为24,或者宣布根本就是无解的。需要注意的是,每张牌必须且运算一次;J、Q、K可设置为11、12、13。使用本程序其实很简单,按Start后,程序会任意给出四张牌,在左边的按钮中也能看到相应的数值,只要输入相应的表达式就可以了。如:6、5、4、1这四个数,输入表达式为:6/(5/4-1)即可;如果你认为本题无解,那么你不必输入任何数值直接按回车就可以,程序会验算答题是否准确。如果输入的数据有错,那么程序会自动定位到出错的地方,以方便用户修改。本程序还有一个Test功能,用于自定义出牌值。即:可以自己任意给出四个(1-13)的整数,按OK键后由程序自动算出答案。3.1.2 拼拼图简介 根据右上角的小图片在大图中任意移动各分块,把图拼出来。按新游戏键重新开始游戏,按设置键出现设置游戏界面。在该界面中,用户可以从已有的图片中选出自己喜欢的图片进行游戏,也可以使用载入图片,到其他文档中挑自己喜欢的图片加载进去。点击确定即完成游戏设置。按退出键直接退出游戏,按关于键显示版权信息。主要说明版权所有。3.2 系统开发方法 3.2.1 游戏总界面设计图3-1 游戏主界面该截面为游戏进入游戏的最初界面,按欢迎进入游戏世界键,则进入如下界面: 图3-2 游戏分类界面在该界面中分了4类游戏,按任意一个键即出现游戏选择界面,这4类中的界面大致相同,界面如下:图3-3 选择游戏界面按该界面上的键直接出来游戏窗口,其主要代码很简单,如下:Private Sub Command1_Click()Shell f:/智能24End SubPrivate Sub Command2_Click()Shell f:/旋转End Sub3.2.2 24点纸牌的开发(1) 主界面设计 图3-4 24点纸牌主界面按Start后,程序会任意给出四张牌,在左边的按钮中也能看到相应的数值,只要输入相应的表达式就可以了。如:6、5、4、1这四个数,输入表达式为:6/(5/4-1)即可;如果你认为本题无解,那么你不必输入任何数值直接按回车就可以,程序会验算答题是否准确。如果输入的数据有错,那么程序会自动定位到出错的地方,以方便用户修改。主要代码如下:Private Sub AnswerButton_Click()Dim iAnswer As Integer iAnswer=OperatorModule.Operator() 调用24点表达式计算函数 If iAnswer = 24 Then operater函数能返回24的值说有解 Text1.Text = OperatorModule.OperateorString + =24 Else 答题错误所要做的动作 Text1.Text = 本题无解 End If OKButton.Enabled = False AnswerButton.Enabled = False TestButton.Enabled = True StartButton.Enabled = True TimeButton.Enabled = True StartButton.SetFocusTimer1.Enabled = False 进程停止走动If Trim$(Text1.Text) Then 用户选择本题有解状态以下if.then中为有解状态所要做的动作 If InputNumber(Text1.Text) = True And InputOperator(Text1.Text) = True Then If OperatorFunction(Text1.Text) 表达式出错 Then 调用表达式OperatorFunction 如果表达式没错则执行下面的步骤 If OperatorFunction(Text1.Text) = 24 Then 答题正确所要做的动作 a = MsgBox(恭喜!你答对了 _, 0 + 64 + 0, 正确) If CheckTop10(c:top10.txt, 14) = True Then frmUsr.Show WriteTop10 strUsrName, c:top10.txt, 14 End If AnswerButton.Enabled = False TestButton.Enabled = True StartButton.Enabled = True TimeButton.Enabled = True StartButton.SetFocus Else 答题错误所要做的动作 a = MsgBox(对不起!你答错了, 0 + 16 + 0, 错误) StartButton.Enabled = False TimeButton.Enabled = False TestButton.Enabled = False AnswerButton.Enabled = True AnswerButton.ForeColor = &HFF& 使字体变成红色 AnswerButton.SetFocus End If 无论答题对与否都要做的动作 Text1.Text = Text1.Text + = + OperatorFunction(Text1.Text) Else 表达式出错 Timer1.Enabled = True 由于是用户输入出错所以进程续继走动 a = MsgBox(操作符出错,请检查后重试, 0 + 16 + 0, 错误) Text1.SelStart = Len(Text1.Text) 将光标定位在表达式的最后 Text1.SetFocus 将焦点定位在文本框上的错误位置上,使用户能够方便地修改输入上的错误 Exit Sub 此时可以直接退出这个事件按钮 等用户重新输入表达式 End If Else Timer1.Enabled = True 由于是用户输入出错所以进程续继走动 If InputOperator(Text1.Text) = True Then 先判断表达式有没有错,后判断数字有没有错 a = MsgBox(对不起!你输入的数据有误 请检查后重试 + Chr$(13) + Chr$(10) + ReturnErrorString, 0 + 48, 数据有错) Else a = MsgBox(对不起!你输入的表达式有误 请检查后重试 + Chr$(13) + Chr$(10) + ReturnErrorString, 0 + 48, 表达式有错) End If Text1.SelStart = iFindError Text1.SelLength = iErrorLong Text1.SetFocus 将焦点定位在文本框上的错误位置上,使用户能够方便地修改输入上的错误 Exit Sub End IfElse 用户选择本无题状态Else.End If为无解状态所要做的动作 iAnswer = OperatorModule.Operator() 调用24点表达式计算函数 If iAnswer = 24 Then operater函数能返回24的值说有解,所用户选择状态是错误的 a = MsgBox(对不起!你答错了 本题有解, 0 + 16 + 0, 错误) AnswerButton.Enabled = True AnswerButton.ForeColor = &HFF& 使字体变成红色 AnswerButton.SetFocus Else 答题错误所要做的动作 a = MsgBox(恭喜!你答对了 本题无解 _, 0 + 64 + 0, 正确) Text1.Text = 本题无解 TestButton.Enabled = True StartButton.Enabled = True TimeButton.Enabled = True StartButton.SetFocus End IfEnd IfEnd Sub(2) Test界面设计 图3-5 24点纸牌测试界面在主界面中,按Test键就会出现该界面。在该界面中,可以自己任意给出四个(1-13)的整数,按OK键后由程序自动算出答案。按Clear键可以重新再测试,按Return可以回到主界面。该界面中程序自动给出答案的主要代码如下:Private Sub TestCards(Num As Integer)参数num是用户选择的数值Dim iCount As IntegerIf iCardsNumber = 4 Then iCardsNumber = 0If iCardsNumber = 3 Then TestNumberFour = True 用户已经选够了牌数If TestNumberFour Then TestOKButton.Enabled = True TestOKButton.SetFocusElse TestOKButton.Enabled = FalseEnd If Randomize 初始化随机 tt = Int(Rnd() * 4 + 1) 产生一个随机数 Select Case tt 用于显示四种不同种类的牌 Case 1 iCount = 0 + Num Case 2 iCount = 13 + Num Case 3 iCount = 26 + Num Case 4 iCount = 39 + Num End Select Label1.Caption = iRndCardsNumber(iCardsNumber + 1) = Num 将数值装入数组以便计算时使用CardsPictureClip.Picture = CardsImageList.ListImages(iCount).Picture Dim a Dim W As Integer W = Int(Rnd * 3 + 1) 随机产生一种特殊显示模式 a = px(CardsPicture(iCardsNumber), CardsPictureClip, W) CardsPicture(iCardsNumber).Picture = CardsImageList.ListImages(iCount).Picture iCardsNumber = iCardsNumber + 1End Sub(3)使用说明界面设计这几个界面主要用于向用户说明如何玩这个游戏,各界面上的按钮如何使用。同时也说明版权所有。其主要代码为:Private Sub Form_Load()TitleBar.Width = Form2.ScaleWidthTitleBar.Top = 0TitleBar.Left = 0Picture1.Left = TitleBar.Width - Picture1.Width - 100Picture1.Top = 25StartHelp.Top = 2040StartHelp.Left = 360StartHelp.Visible = TrueTestHelp.Top = 2150TestHelp.Left = 360TestHelp.Visible = FalseOff_OnHelp.Top = 2100Off_OnHelp.Left = 360Off_OnHelp.Visible = FalseTimeHelp.Top = 2040TimeHelp.Left = 360TimeHelp.Visible = FalseOtherHelp.Top = 2040OtherHelp.Left = 360OtherHelp.Visible = FalseStartButton.Visible = FalseEnd Sub 隐藏四个边框Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)ButBorder(0).Visible = FalseButBorder(1).Visible = FalseButBorder(2).Visible = FalseButBorder(3).Visible = FalseEnd Sub 开牌/答题界面 图3-6 24点纸牌开牌/答题 时间设置界面 图3-7 24点纸牌时间设置界面 开/关时间界面图3-8 24点纸牌开/关时间界面 测试界面图3-9 24点纸牌测试界面 其它界面 图3-10 24点纸牌其它界面 作者界面图3-11 24点纸牌作者界面3.2.3 拼拼图的开发(1)主界面设计显示上次载入的外部图片,根据右上角的小图片在大图中任意移动各分块,把图拼出来。按新游戏键重新开始游戏。游戏开始后,点击已被分割的图片,程序会自动判断上下左右任意一块是否为空,若为空,则移动到为空的位置。按设置键出现设置游戏界面。按退出键直接退出游戏,按关于键显示版权信息。图3-12 拼拼图主界面主要代码如下:Private Sub ImageElement_Click(Index As Integer) Dim RLflags As Boolean If ImageElement(0).BorderStyle = 0 Then Exit Sub moveFlags = False 已移动标志设为假 If Index = elementNum And Not moveFlags Then 图片移出最后单元 moveImage Index, 0 Gamewin 调用判断游戏是否成功子过程 End If If Index = 0 And Not moveFlags Then 图片移入最后单元 moveImage 0, elementNum End If 移动右列单元图片 If (Index Mod ColNum) = 0 And Not moveFlags And Index elementNum Then moveImage Index, Index - ColNum moveImage Index, Index + 1 If Index + ColNum elementNum Then moveImage Index, Index + ColNum End If RLflags = True End If 移动左列单元图片 If (Index + 1) Mod ColNum = 0 And Not moveFlags Then moveImage Index, Index - 1 moveImage Index, Index + ColNum moveImage Index, Index - ColNum RLflags = True End If 移动中间列单元图片 If Not Flags And Index And Not RLflags And Index elementNum Then moveImage Index, Index - 1 moveImage Index, Index + 1 moveImage Index, Index + ColNum moveImage Index, Index - ColNum End If End SubPrivate Sub moveImage(Source As Integer, Target As Integer) 移动图片子过程 If Target = 0 And Target = elementNum Then 判断是否出界 判断源单元,目标单元是否符合移动条件 If ImageElement(Target).Picture = 0 And ImageElement(Source).Picture 0 Then 移动图片及子单元索引标识 ImageElement(Target).Picture = ImageElement(Source).Picture ImageElement(Source).Picture = LoadPicture() ImageElement(Target).Tag = ImageElement(Source).Tag moveFlags = True 已移动标志设为真 End If End IfEnd Sub(2)游戏设置界面 图3-13 拼拼图游戏设置界面在该界面中,可以从已有的图片中选出自己喜欢的图片进行游戏,也可以使用载入图片,到其他文档中挑自己喜欢的图片加载进去。点击确定即完成游戏设置。主要代码如下:If Checkload.Value = 1 Then DispImage.Picture = GSppt!tempImage.Picture 选择选择框时,显示上次载入的外部图片 Else For i = 0 To optNum - 1 If Optpict(i).Value Then 取消选择框时,显示选项按钮选择的图片 DispImage.Picture = GSppt!ImageList1.ListImages(i + 1).Picture DispImage.Tag = Str(i) End IfPrivate Sub cmnLP_Click() 载入外部图片 CD1.DialogTitle = 请选择游戏图片 CD1.Flags = cdlOFNHideReadOnly CD1.Filter = JPEG文件(*.jpg)|*.jpg|BMP文件(*.bmp)|*.bmp CD1.ShowOpen If CD1.FileName Then DispImage.Picture = LoadPicture(CD1.FileName) 显示载入图片 GSppt!tempImage.Picture = DispImage.Picture 保存载入图片 End IfEnd Sub(3)关于界面设计图3-14 拼拼图关于界面版权所有说明。3.3 系统开发环境3.3.1 开发平台系统开发平台:Windows2000数据库管理系统:Microsoft Access 2000数据库和普通二进制文件作为数据加载模块3.3.2 运行平台操作系统:WindowsMe and Windows2000(sp1sp2sp3sp4) and WindowsXpCPU:p2mx266以上内存:64MB以上显示卡:兼容16位色显卡3.3.3 输入输出设计(1)输入设计1与人工录入有关的设备键盘:标准键盘,具有Windows功能键。鼠标:两键或三键鼠标小口或USB鼠标。汉字输入法:拼音输入法、五笔输入法等。2. 录入软件界面:本系统所有输入均支持鼠标和键盘两种输入方式。3. 录入方式有两种:文本式和表单式。文本式录入主要的基础信息;而表单在这里不怎么会用到。两种风格都设置了灵活多样的录入方式,可通过数字或汉字的快速检索数据并提供列表框和表单方式辅助数据信息输入。(2)输出设计本系统输出方式采用屏幕显示和打印机输出两种方式。3.4 小结本章主要对这次设计的游
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年重新签订劳动合同书
- 2025年保利新员工考试及答案
- 2025年安全规程考试技巧及答案
- 2025餐饮公司劳动合同范本
- 2025年国际预科课程考试题及答案
- 船厂防护维修方案范本
- 物业工具清洗方案范本
- 2025年水工程经济考试题及答案
- 铝合金景观亭施工方案
- 瓷厂破产清算方案范本
- 2025机采棉作业合同协议书范本
- 树木学试题及答案北林
- 财政补贴政策在促进农村电商发展的扶持效果可行性分析报告
- 《创伤失血性休克中国急诊专家共识(2023)》解读 2
- 2025第三季度作风建设党课以忠诚廉洁担当的政治品格奋力书写高质量发展新答卷
- 项目部领导带班记录
- 打井设备成套转让协议书
- 新视野大学英语1读写教程-Unit1-Fresh-Start-课件
- 客户信息登记表
- 不合格品处置记录表(标准版)
- 文体与翻译公文文体科技文体
评论
0/150
提交评论