计算机应用技术毕业论文基于WinCE的小游戏设计_第1页
计算机应用技术毕业论文基于WinCE的小游戏设计_第2页
计算机应用技术毕业论文基于WinCE的小游戏设计_第3页
计算机应用技术毕业论文基于WinCE的小游戏设计_第4页
计算机应用技术毕业论文基于WinCE的小游戏设计_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

铜陵职业技术学院 毕 业 设 计 题 目: 基于 小游戏设计 系 部: 信息工程系 专 业: 计算机应用技术 班 级: 12 计算机应用技术( 2)班 姓 名: 王 芳 指导教师: 李 婷 铜陵职业技术学院 摘 要 从 2001 年开始,游戏作为一种产业已经渐渐地为中国大众接受,它所带来的经济效益和社会效益更是人们之前所没有估计到的,当游戏作 为一种很重要的娱乐手段被大众接受时,游戏产业就已经注定会带来巨大的经济效益。 连连看游戏是一款经典小游戏,操作简单,适合所有玩定。连连看游戏软件在 于 以实现初始化界面,用户使用鼠标点击两张相同图案的小方块进行消除,并有多种图案样式的功能选择,丰富了游戏的娱乐性。此连连看游戏程序界面美观,操作简单,具有一定的趣味性,是一款老少皆宜的休闲佳品。 本文通过需求分析与方案论证,首先对开发连连看游戏程序进行初步的分析,然后通过总体设计的详细设计论述了系统的开发和实现过程。 铜陵职业技术学院 关键词 连连看 单机游戏;游戏开发 铜陵职业技术学院 目 录 第 1 章 绪论 . 第 2 章 总体设计 .开发工具 .程序画面的实现 .程序代码的添加 .基类的构造函数介绍 .基类中其余函数代码的解释 . . 卡片类的构造函数 . 卡片类中 其余函数代码的解释 .卡片集合类的构造函数 .与卡片处理、绘制、重置相关的函数 .游戏程序中对屏幕单击的处理 .判断两张卡片之间是否可以连通 .“离屏技术”的画面绘制方法 .游戏程序的初始化 .游戏对象的处理 . 铜陵职业技术学院 . 3 章 游戏状态 .连看 游戏程序状态的介绍 .卡片集合类 .游戏类 .卡片集合类 .游戏类 . 4 章 计时器 .计时器类 .游戏类 .变化后的时间显示方式 .时间显示方式的代码变化 .代 码变化后的计时器类代码详解 . 代码变化后的游戏类代码详解 . 章 系统测试 .束语 .谢 .考文献 . 铜陵职业技术学院 第 1 页 共 28 页 第 1 章绪论 课题背景 “连连看”是目前非常流行的一款休闲类游戏。由于它的游戏规则简单、画面精美、操作简便,而赢得了很多玩家的喜欢。 在游戏开始运行 以后,只需要在多种图形当中,按照游戏的规则 (两个图形的连线当中不能有别的图形遮挡,并且两个图形之间最多只允许有两个拐点 )找出两个图案相同的图形,然后用鼠标把两者连接在一起,就可以消去彼此相连的两个图菜。在规定的时间内,玩家消掉的图案越多,其得分也越高。 题意义 开发连连看游戏程序的目的是为了人们休闲的需要,在紧张的工作之余休闲类的小游戏能够给人们带来最大程度的放松,也可以增加人们之间的交流、沟通,通过游戏还可以认识更多的朋友,达到人们之间相互娱乐的目的,而且小游戏还不会浪费资源,不像大型游戏占据资 源和牵扯精力,可谓工作娱乐两不误。 通过此次课题的设计,掌握如何制作一个游戏软件,以及制作游戏软件的整个流程,制作游戏软件的步骤,为以后的就业工作打下基础。 题内容及目标 连连看游戏主要是鼠标两次点击的图片是否能消去的问题。前提是点击两张相同的图片,若点击的是同一张图片或者是两张不同的图片,则不处理。在两张相同图片所能连通的所有路径中,如果存在一条转弯点不多于两个的路径,就可以消去;如果没有,则不可以。此程序的课题内容及目标如下。 且不超过两个转弯的连线 将它们连接起来,便可以消除这对方块,每一局玩家需要在规定的时间内消除所有的方块,当完成任务,系统会提示,然后重新开始游戏。 可以选择暂停。 通过对以上功能的实现,达到界面美观,操作简单,增加游戏的娱乐性、趣味性,使玩家对此游戏产生兴趣。 铜陵职业技术学院 第 2 页 共 28 页 第 2章 总体设计 发工具和运行环境 发工具 本程序采用 008 作为开发工具。 E 的设计目标是:模块化及可伸缩性、实时性能好、通信能力强大、支持多种 操作系统内核的角度看 , E 具有灵活的电源管理功能,包括睡眠 /唤醒模式。在 E 中,还使用了对象存储( 术,包括文件系统、注册表 及数据库。它还具有很多高性能、高效率的操作系统特性,包括按需换页、共享存储、交叉 处理同步、支持大容量堆( 。 E 拥有良好的通信能力。它广泛支持各种通信硬件,亦支持直接的局域网连 接以及拨号连接,并提供与 部网以及 连接,包括用于应用级数据传输的 设备至设备间的连接。在提供各种基本 的通信基础结构的同时, E 还提供与 x/集成和通信。 E 的图形用户界面相当出色。它拥有基于 览器,此外,还支持 体。开发人员可以利用丰富灵活的控件库在 E 环境下为嵌入式应用建立各种专门的图形用户界面。 E 甚至还能支持诸如手写体 和声音识别、动态影像、 3D 图形等特殊应用。 E 是一个多任务的操作系 统,可以同时执行多个任务,并在他们之间来回切换,这其实是 以通过我们熟悉的 E,它也带有 “ 我的文档 ” ,也有很多软件如 。 E 同时内置了多媒体功能,通过 以播放 至是视频。 E 具有可扩充的 D 插槽,通过扩充卡可以实现多 种功能,例如网页浏览、无线接入或者增 加更大的存储空间。 连连看”游戏的设计步骤 序画面的实现 #,新建一个 C 2003的应用程序。把工程的名字命名为“ 序代码的添加 铜陵职业技术学院 第 3 页 共 28 页 诸如图形绘制相关的位置坐标、选择图形区域等操作都放在了这个类中。这种代码组织结构不但使整个程序看上去结构非常清晰,也很好地体现了面向对象概念的精髓所在。即把共性的东西抽象出来,放在一起,方便后 面具体对象的实现。 继承自基类 为卡片类中包含了卡片绘制等一些基本的功能,因此从这个意义上讲,继承自 最合适的。以后只需要修改基类 可以实现用不同图形的卡片绘制 (比如,选择不同的卡片作为背景进行绘制等 ) 卡片集合类主要负责卡片集合相关的事项。比如,绘制整个卡片数组、实现背景卡片的随机排序、处理鼠标在卡片集合上的单击等。可以说,游戏中关键的功能,如处理鼠标单击,判断两张卡片是否可以可见、连通等功能都是在这里实现的。 序的主类 主要包含了游戏的主循环、应用程序的初始化、对象的处理、对象的绘制等游戏程序的主要功能。概括地讲,该游戏程序都是依靠这个类“串”起来的。因此,建议读者首先要了解该类中如何把游戏程序的各个功能组合在一起,在此基础上再来仔细研究其余类中代码的具体实现。 类源代码详解 在程序代码中提到的 是所有对象的基类。在这个游戏中,图形的绘制、选中标示的绘制等都需要计算目的位置的坐标、源图像的坐标等。因此,根据面向对象的思想,把所有这些经常用到的属性都 抽象成了一个基类。在这个基类当中包含了一些基本的操作,这样当再派生出具体类 (比如,背景卡片 )的时候,只需要继承自这个基类就可以了,这就是 类的构造函数介绍 在一个类中,首先需要实现的就是该类的构造函数。例如: 铜陵职业技术学院 第 4 页 共 28 页 上面这两个构造函数的函数名称是完全一样的,都是 有里面的参数不相同。我们把这种在同一个类中函数名称相同,而参数类型不同的现象叫做函数的重载。使用重载函数可以使程序代码在编译的时候,根据函数参数的不同自动地选择相应的函数进行编译。这样可以大大降低程序的复杂程度。 在“ “ “ , 中的变量,在它们的前面加上 表示是中的变量;等号后面的那些值则为参数列表中传递过来的参数。 在第 2个构造函数的参数列表后面“: 的作用是调用 用户可以把 样 然就可以被看成是 也就是调用第 1 个构造函数了。这样做的好处在于,当对 行修 改以后,第 2 个构造函数是不需要修改的。当然,也可以在第 2个构造函数中添加以下语句: 然这样也可以实现原来函数的功能,但是如果第 1个构造函数发生了变化,第 2个构造函数也需要进行相应的修改。 类中其余函数代码的解释 /返回对象是否可见 当卡片被消去以后,就处于不可见的状态,反之,则处于可见 状态。这就是 /对对象进行相应的处理和操作。默认值为空,需要的时候可以在子类重写该函数 铜陵职业技术学院 第 5 页 共 28 页 片类源代码详解 “: 示卡片 (是 的子类,它继承了父类的所有功能,同时又具备自己的一些特性。 片类的构造函数 : 这个构造函数参数列表后面的“: 表示构造函数在初始化的时候,会将 数列表里面的 递给基类构造函数这样就实现了初始化所属游戏 图像 颜色属性 片类中其余函数代码的解释 /重置对象 ; /重置对象为可见 片集合类源代码详解 片集合类的构造函数 /设置游戏对象 /计算卡片集合的行数 /计算卡片集合的列数 /计算卡片数 /生成卡片对象数组 ; |(x= /不作任何处理 /当单击屏幕的位置处于卡片显示范围内的时候,计算鼠标单击处的行和列 y x * if( 当选中的卡片是可见的时候 if( /当单击位置上的卡片还没有被选中的时候 /选中该卡片 句中, 饰的是 中的成员变量 号后面出现的是 断两张卡片之间是否可以连通 根据游戏的规则,每两张相同卡片之间的拐点不能超过 2个,并且拐点之间不能有别的方块进行阻挡。因此,要判断两张卡片是否可以连通,还需要判断中间的两个拐点和其余部分是否可以连通。而要想判断这 4个点是否连通,则需要判断每 2个点之间是否可以连通。基于这样的一种判断思路,我们分别设计了 3个函数。 铜陵职业技术学院 第 9 页 共 28 页 用 (表起始点所处的行列; (表目标点所处的行列; ( (表两个拐点所处的行和列。 戏类源代码详解 屏 技术”的画面绘制方法 要采取一种被称之为“离屏技术”的画面绘制方法。具体的设计思路是:首先创建一个虚拟的屏幕,然后把将要绘制的图形画面绘制到这个虚拟屏幕上,最后把虚拟上的所有内容复制到可以显示的真正的物理屏幕上。使用这种技术可以很好地避免屏幕的闪烁现象。这是因为在绘制到虚拟屏幕的时候,所花费的时间很短。在内容变化不大的时候,几乎看不到任何的闪烁。 离屏技术主要有以下 3个步骤: 创建用于离民屏显示的虚拟屏幕。 在创建的虚拟屏幕上绘制画面。 将虚拟屏幕上的整个画面复制到真正的物理屏幕上。 在这个游戏当中, 应的是物理屏幕; 应的是后台的虚拟屏幕,这样就从编码上实现了离屏显示技术。 戏程序的初始化 ; /初始化游戏 ; /进入到游戏的主循环当中 为了使得在每一次游戏开始的时候,卡片的排列顺序都不相同,在程序代码中就需要用随机函数生成不同的随机数。 /初始化应用程序 ,就是前面提到的图片资源中的 件 /后台绘图面 上面代码中 作用为用 建新的 戏对象的处理 ; /处理卡片集合 /绘制所有游戏对象 /绘制背景,以覆盖并准备重绘前景 0, 0); /绘制卡片集合,调用了 /刷 新前台显示屏幕,此时将后台画面一次性绘制到前台,离屏技术的体现 ,0); /重置所有游戏对象 ; /重置卡片集合 制卡片之间的连接线 数。 x4, 铜陵职业技术学院 第 11 页 共 28 页 /设置画笔的颜色为红色 下面的 3行代码实现了在起始点、目标点和两个拐点之间绘制连接线。 本章小结 本章主要介绍了游戏程序“连连看”的整体结构及各函数实现的功能,其中包括游戏对象中所有对象的基类 定义了图形绘制相关的位置坐标、选择图形区域等操作,又介绍了卡处类 包含了卡片绘制等一些基本的功能,如绘制卡片数组、实现背景卡片的随机排序、处理鼠标在卡片集合上的单击等,还介绍了游戏程序的主类 包含了游戏的主循环、应用程序的初始化、对象的绘制等游戏的主要功能,它将整个程序串在了一起。 铜陵职业技术学院 第 12 页 共 28 页 第 3 章 游 戏状态的添加 戏状态概述 在游戏程序设计中,游戏状态的添加可以大大增加游戏产品的完整性、可玩性以及游戏界面的友好性。有的游戏在进入到暂停状态的时候会停止当前画面,然后在画面显示暂停信息;有的游戏则会直接进入到游戏设置画面等。 连连看 游戏程序状态的介绍 1. 游戏启动时的状态; 2. 游戏运行中的状态; 3. 游戏暂停状态下的状态; 4. 游戏重新运行的状态; 5. 游戏胜利时的状态; 6. 重新开始游戏的状态 序状态的添加所引起的代码变化 “连连看”游戏一共包含 4个类 ,分别为对象的基类、卡片类、卡片集合类和游戏类。其中,对象的基类和卡片类在这个版本的程序中没有发生变化,卡片集合类也只作了很少的修改,惟一变化较大的就是游戏类。 片集合类 卡片集合 (和上一章的版本相比, 函数发生了比较大的变化。 戏类 在这个版本的“连连看”游戏程序中,发生代码变化较大的是游戏类 化部分代码详解 片集合类 卡片集合 (,主要实现了卡片的屏幕绘制、判断两张卡片之问是否连通等功能。在这个 版本的“连连看”中, 函数的变化上。 在第 2章中,游戏程序在取得胜利以后,画面上是没有任何提示信息。在本章的程序当中,增加了胜利状态的显示画面,使游戏的功能更趋于完整。在程序中定义的 型变量 环语句中代码的作用是在屏幕上绘制出 铜陵职业技术学院 第 13 页 共 28 页 所有的背景图案,一般只有在游戏开始的时候,或者重新开始的时候才需要进行游戏画面的绘制。当然,此时玩家不可能处在通关胜利的状态下,因此,在循环语句当中需要添加“ 句。 戏类 游戏类中包含了整个游戏程序的主函数、初始化函数等信息,和第三章的 变化较大。 在本程序中是在构造函数的前面增加一个枚举类型,具体的代码如下: ; 从名称中可以很清楚地看出其代表的含义,分别为: 菜单,也就是游戏启动时的状态。 利状态。 戏暂停状态。 戏正在进行当中。 戏退出。 构造函数 和前一个版本的程序相比,构造函数也发生了一定的变化。 通过函数的对比,可以发现,在新版本中去掉了 这一行代码。这样做是因为当前版本的游戏程序在初始化的时候,首先展现给玩家的是游戏的启动界面,只有当用户单击屏幕以后才会进入到游戏的循环当中。而前一个版本的游戏直接展现的就是游戏界面,可以直接进入到游戏的循环当中。 因为添加了不同的游戏状态,同时需要在进入到游戏主循环函数的时候,进行游戏初始化状态的判断,因此 ,需要在 函数的最前面添加 函数。 函数 铜陵职业技术学院 第 14 页 共 28 页 作用是初始化游戏,我们把游戏启动时候要做的事情都放在这里。比如,背景画面的重新绘制、状态的设置等。下面来看一下代码实现。 | ( /当游戏刚启动的时候,或者游戏处于胜利状态的时 候 ; /重新绘制所有的背景画面 重新绘制所有的背景画面以后,也就表示重新开始了新的一局游戏,因此,需要把游戏状态设置成正在进行中。这就是最后一条语句的作用。 函数和 函数 函数和 函数都是新添加的函数,分别表示游戏的胜利状态和游戏的失败状态。当游戏胜利的时候,游戏自然就处于 游戏失败的时候,游戏又会回 到开始时候的画面。在这里需要说明的是,本章这个版本的游戏还没有实现对失败情况的判断。但是为了保证各种状态的完整性,可以在这里添加失败时候的游戏状态代码。 函数 函数的变化主要体现在对画笔的设置上。 在上一个版本的游戏中玩家或许会觉得方块之间的连线不是很明显,因此在这里对其进行了一定的修改,也就是指定了画笔的宽度。具体的代码如下: ) 其中, 函数 函数为此版本游戏中新添加的函数。当屏幕发生变化 (比如,最小化,然后最大化以后 )需要重新绘制的时候,系统会调用 函数。 铜陵职业技术学院 第 15 页 共 28 页 从函数的代码中可以很清楚地看到,当游戏处于启动、胜利、暂停状态的时候,需要把整个背景用相应状态下的图片进行绘制;当游戏处于运行状态的时候,则要把画面绘制成原来的样式;退出程序的时候,不需要作任何处理。 本章小结 本章中主要介 绍了和第三章“连连看”游戏相比较,在此基础上添加了游戏的状态,其中包括游戏的启动画面、游戏的暂停画面、游戏的胜利状态、退出状态和运行状态。而后由于程序状态的改变引起的程序代码的变化,这些变化主要有:卡片集合类中的 函数、构造函数、 函数、 函数、 函数、 函数和 函数、 函数、 函数、鼠标单击事件 函数。 铜陵职业技术学院 第 16 页 共 28 页 第 4 章计时器 序计时功 能简介 在游戏画面上添加了时间显示,这样每一关就不人无限制地运行下去,玩家的思考时间也会受到时间的限制了。并且当显示的时间变成 0的时候,就会终止游戏程序。 时器类的添加 在这个版本的“连连看”中,发生代码变化的类为 时还增加了计时器( 。下面是 20; /计时器最大值 4; /计时器左上角 ; /计时器左上角 /计时器字体 /计时器颜色 : /计时器值 : : 16, ; 铜陵职业技术学院 第 17 页 共 28 页 ; /处理对象 /获取系统运行的毫秒数 (1000)| (| 铜陵职业技术学院 第 19 页 共 28 页 (表 示 当 时 间 间 隔 为 也就是 1000的 时 候 ,(| /间隔 /或归 0 if(0) /计时器值为 0,失败 ; ; /时间条变短 /记录系统毫秒数 /重置对象 /重置对象大小 /重置计时器值 码变化后的计时器类代码详解 1. 全局量的变化 因为要用进度条来显示时间的变化,所以需要定义进度条的长度和宽度。在这个版本的程序中,增加了两个全局常量。 90; : 其中, 为不再需要对显示时间的字体和颜色进行设置,因此去掉了下面两行代码。 铜陵职业技术学院 第 23 页 共 28 页 2. 构造函数的变化 因为时间显示的方式变成了进度条显示,这样就直接导致 表列出了构造函数代码变化的前后对比。 前一个版本 当前版本 : 6, ); ; : ; 从上面的表中,可以很清晰地看到,主要是在构造函数参数以及部分函数发生了变化。由于采用图片显示时间长短,而非数字显示,因此需要设置图片的源图像、图片属性等信息。这些都需要体现在函数参数上。 由于没有了数字

温馨提示

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

评论

0/150

提交评论