计算机应用技术毕业论文基于WinCE的小游戏设计.doc
《计算机应用技术毕业论文基于WinCE的小游戏设计.doc》由会员分享,可在线阅读,更多相关《计算机应用技术毕业论文基于WinCE的小游戏设计.doc(33页珍藏版)》请在三一办公上搜索。
1、毕 业 设 计题 目: 基于WinCE的小游戏设计 系 部: 信息工程系 专 业: 计算机应用技术 班 级: 12计算机应用技术(2)班 姓 名: 王 芳 指导教师: 李 婷 摘 要 从2001年开始,游戏作为一种产业已经渐渐地为中国大众接受,它所带来的经济效益和社会效益更是人们之前所没有估计到的,当游戏作为一种很重要的娱乐手段被大众接受时,游戏产业就已经注定会带来巨大的经济效益。连连看游戏是一款经典小游戏,操作简单,适合所有玩定。连连看游戏软件在Windows环境下,基于MFC框架设计开发,可以实现初始化界面,用户使用鼠标点击两张相同图案的小方块进行消除,并有多种图案样式的功能选择,丰富了游
2、戏的娱乐性。此连连看游戏程序界面美观,操作简单,具有一定的趣味性,是一款老少皆宜的休闲佳品。本文通过需求分析与方案论证,首先对开发连连看游戏程序进行初步的分析,然后通过总体设计的详细设计论述了系统的开发和实现过程。关键词 连连看 单机游戏;游戏开发 目 录第1章 绪论 .1 1.1课题背景.1 1.2课题意义.1 1.3课题内容及目标.1 第2章 总体设计.2 2.1开发工具和运行环境.22.1.1开发工具.2 2.2连连看游戏的设计步骤.22.2.1程序画面的实现.2 2.2.2程序代码的添加.2 2.3基类源代码详解.3 2.3.1基类的构造函数介绍.3 2.3.2基类中其余函数代码的解释
3、.4 2.4卡片类源代码详解.5 2.4.1 Object类.52.4.2 卡片类的构造函数.52.4.3 卡片类中其余函数代码的解释.5 2.5卡片集合类源代码详解.52.5.1卡片集合类的构造函数.52.5.2与卡片处理、绘制、重置相关的函数.62.5.3游戏程序中对屏幕单击的处理.82.5.4判断两张卡片之间是否可以连通.8 2.6游戏类源代码详解.9 2.6.1“离屏技术”的画面绘制方法.9 2.6.2游戏程序的初始化.92.6.3游戏对象的处理.102.6.4绘制卡片之间的连接线DrawLine函数.10 第3章 游戏状态.12 3.1游戏状态概述.12 3.2“连连看游戏程序状态的
4、介绍.12 3.3程序状态的添加所引起的代码变化.123.3.1卡片集合类.123.3.2游戏类.123.4变化部分代码详解.123.4.1卡片集合类.123.4.2游戏类.13第4章 计时器.16 4.1程计时器功能简介.16 4.2计时器类的添加.16 4.3代码变化的类及新添加的模块代码详解.17 4.3.1计时器类.17 4.3.2游戏类.20 4.4计时功能中时间显示方式的改变.204.4.1变化后的时间显示方式.204.4.2时间显示方式的代码变化.214.4.3代码变化后的计时器类代码详解.224.4.4 代码变化后的游戏类代码详解.24第5章 系统测试.25 结束语.26 致谢
5、.27 参考文献.28第1章绪论1.1 课题背景“连连看”是目前非常流行的一款休闲类游戏。由于它的游戏规则简单、画面精美、操作简便,而赢得了很多玩家的喜欢。在游戏开始运行以后,只需要在多种图形当中,按照游戏的规则(两个图形的连线当中不能有别的图形遮挡,并且两个图形之间最多只允许有两个拐点)找出两个图案相同的图形,然后用鼠标把两者连接在一起,就可以消去彼此相连的两个图菜。在规定的时间内,玩家消掉的图案越多,其得分也越高。1.2 课题意义开发连连看游戏程序的目的是为了人们休闲的需要,在紧张的工作之余休闲类的小游戏能够给人们带来最大程度的放松,也可以增加人们之间的交流、沟通,通过游戏还可以认识更多的
6、朋友,达到人们之间相互娱乐的目的,而且小游戏还不会浪费资源,不像大型游戏占据资源和牵扯精力,可谓工作娱乐两不误。通过此次课题的设计,掌握如何制作一个游戏软件,以及制作游戏软件的整个流程,制作游戏软件的步骤,为以后的就业工作打下基础。1.3 课题内容及目标连连看游戏主要是鼠标两次点击的图片是否能消去的问题。前提是点击两张相同的图片,若点击的是同一张图片或者是两张不同的图片,则不处理。在两张相同图片所能连通的所有路径中,如果存在一条转弯点不多于两个的路径,就可以消去;如果没有,则不可以。此程序的课题内容及目标如下。1. 随机生成游戏界面2. 选择两个图案相同的方块,并且不超过两个转弯的连线将它们连
7、接起来,便可以消除这对方块,每一局玩家需要在规定的时间内消除所有的方块,当完成任务,系统会提示,然后重新开始游戏。3. 当玩家有事,也可以选择暂停。通过对以上功能的实现,达到界面美观,操作简单,增加游戏的娱乐性、趣味性,使玩家对此游戏产生兴趣。第2章 总体设计2.1开发工具和运行环境2.1.1开发工具本程序采用Microsoft Visual Studio 2008作为开发工具。Windows CE 的设计目标是:模块化及可伸缩性、实时性能好、通信能力强大、支持多种 CPU。从操作系统内核的角度看,Windows CE 具有灵活的电源管理功能,包括睡眠/唤醒模式。在 Windows CE 中,
8、还使用了对象存储(Object Store)技术,包括文件系统、注册表 及数据库。它还具有很多高性能、高效率的操作系统特性,包括按需换页、共享存储、交叉 处理同步、支持大容量堆(Heap)等。 Windows CE 拥有良好的通信能力。它广泛支持各种通信硬件,亦支持直接的局域网连 接以及拨号连接,并提供与 PC、内部网以及 Internet 的连接,包括用于应用级数据传输的 设备至设备间的连接。在提供各种基本的通信基础结构的同时,Windows CE还提供与 Windows 9x/NT 的集成和通信。 Windows CE的图形用户界面相当出色。它拥有基于Microsoft Internet
9、Explorer的Internet 浏览器,此外,还支持 TrueType 字体。开发人员可以利用丰富灵活的控件库在 Windows CE 环境下为嵌入式应用建立各种专门的图形用户界面。Windows CE 甚至还能支持诸如手写体 和声音识别、动态影像、3D 图形等特殊应用。 Windows CE 是一个多任务的操作系统,可以同时执行多个任务,并在他们之间来回切换,这其实是Windows的简化版本,可以通过我们熟悉的Windows的操作方式来控制Windows CE,它也带有“我的文档”,也有很多软件如 Pocket Word、Pocket Excel 等。 Windows CE 同时内置了多
10、媒体功能,通过 Windows Media Player 可以播放 MP3,甚至是视频。Windows CE 具有可扩充的 Compact Flash/MMC/SD 插槽,通过扩充卡可以实现多 种功能,例如网页浏览、无线接入或者增加更大的存储空间。2.2、“连连看”游戏的设计步骤 2.2.1程序画面的实现1.运行Visual C#,新建一个Pocket PC 2003的应用程序。把工程的名字命名为“LinkGame”。2.添加游戏程序相关的资源图片。 2.2.2程序代码的添加1.展示游戏中所有对象的基类Object。把诸如图形绘制相关的位置坐标、选择图形区域等操作都放在了这个类中。这种代码组织
11、结构不但使整个程序看上去结构非常清晰,也很好地体现了面向对象概念的精髓所在。即把共性的东西抽象出来,放在一起,方便后面具体对象的实现。 2.卡片类Card。Card类继承自基类Object,因为卡片类中包含了卡片绘制等一些基本的功能,因此从这个意义上讲,继承自Object是最合适的。以后只需要修改基类Object的相关代码,就可以实现用不同图形的卡片绘制(比如,选择不同的卡片作为背景进行绘制等) 卡片集合类主要负责卡片集合相关的事项。比如,绘制整个卡片数组、实现背景卡片的随机排序、处理鼠标在卡片集合上的单击等。可以说,游戏中关键的功能,如处理鼠标单击,判断两张卡片是否可以可见、连通等功能都是在
12、这里实现的。 3.游戏程序的主类frmMaim.cs。frmMain.cs中主要包含了游戏的主循环、应用程序的初始化、对象的处理、对象的绘制等游戏程序的主要功能。概括地讲,该游戏程序都是依靠这个类“串”起来的。因此,建议读者首先要了解该类中如何把游戏程序的各个功能组合在一起,在此基础上再来仔细研究其余类中代码的具体实现。2.3、基类源代码详解在程序代码中提到的Object类是所有对象的基类。在这个游戏中,图形的绘制、选中标示的绘制等都需要计算目的位置的坐标、源图像的坐标等。因此,根据面向对象的思想,把所有这些经常用到的属性都抽象成了一个基类。在这个基类当中包含了一些基本的操作,这样当再派生出具
13、体类(比如,背景卡片)的时候,只需要继承自这个基类就可以了,这就是Object类的作用。2.3.1基类的构造函数介绍在一个类中,首先需要实现的就是该类的构造函数。例如:pubuc Object(Game gRifle) this.game=game;public Object(Game game,Image image,ImageAttributes imageAttr :this(game) this.image=image; this.imageAttr=imageAttr; 上面这两个构造函数的函数名称是完全一样的,都是Object,只有里面的参数不相同。我们把这种在同一个类中函数名称相
14、同,而参数类型不同的现象叫做函数的重载。使用重载函数可以使程序代码在编译的时候,根据函数参数的不同自动地选择相应的函数进行编译。这样可以大大降低程序的复杂程度。 在“this.game=game”、“this.image=image”和“this.imageAttr=imageAttr”中,this后面的game、image和imageAttr为Object类中的变量,在它们的前面加上this就表示是Object类中的变量;等号后面的那些值则为参数列表中传递过来的参数。 在第2个构造函数的参数列表后面“:this(game)”的作用是调用Object(Game game)。用户可以把this看
15、作是Object,这样this(game)自然就可以被看成是Object(game),也就是调用第1个构造函数了。这样做的好处在于,当对Object(Game game)进行修改以后,第2个构造函数是不需要修改的。当然,也可以在第2个构造函数中添加以下语句: this.game=game虽然这样也可以实现原来函数的功能,但是如果第1个构造函数发生了变化,第2个构造函数也需要进行相应的修改。2.3.2基类中其余函数代码的解释public bool Visible get return this.visible; /返回对象是否可见 当卡片被消去以后,就处于不可见的状态,反之,则处于可见状态。这就
16、是Visible函数的作用。 public virtuat Void Process() /对对象进行相应的处理和操作。默认值为空,需要的时候可以在子类重写该函数2.4、卡片类源代码详解2.4.1 Object类“:Object”表示卡片(Card)类是Object类的子类,它继承了父类的所有功能,同时又具备自己的一些特性。2.4.2 卡片类的构造函数pubIlc Card (Game game,Image image,ImageAttributes imageAttr,int left,int top) :base(game,lmage,imageAttr)这个构造函数参数列表后面的“:ba
17、se(game,image,imageAttr)”表示构造函数在初始化的时候,会将Card参数列表里面的game、image和imageAttr传递给基类构造函数Obiect(Game game,Image image,ImageAttributes imageAttr),这样就实现了初始化所属游戏game、源图像image和颜色属性imageAttr的功能。2.4.3 卡片类中其余函数代码的解释public override void Reset()/重置对象 Show();/重置对象为可见2.5卡片集合类源代码详解 2.5.1卡片集合类的构造函数public Cards(Game game
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机应用技术 毕业论文 基于 WinCE 小游戏 设计
链接地址:https://www.31ppt.com/p-2393033.html