基于嵌入式的贪食蛇的设计和实现讲解.doc
《基于嵌入式的贪食蛇的设计和实现讲解.doc》由会员分享,可在线阅读,更多相关《基于嵌入式的贪食蛇的设计和实现讲解.doc(20页珍藏版)》请在三一办公上搜索。
1、嵌入式大作业贪食蛇的设计和实现作 者 姓 名: 学科、专业 : 学 号 : 指 导 教 师: 完 成 日 期: 大连大学Dalian University摘 要 WinCE 是微软公司嵌入式、移动计算平台的基础 它是一个开放的、 可升级的 32 位嵌入式操作系统 是基于掌上型 电脑类的电子设备操作系统 。本文基于此,尝试设计了基于嵌入式winCE开发的一款贪吃蛇游戏,主要目的是通过开发嵌入式贪吃蛇游戏,掌握嵌入式开发的整个过程,同时介绍基于winCE嵌入式开发的详细设计步骤,向初学者介绍开发基于winCE方面嵌入式程序的整个框架流程。本论文软件方面采用的是EVC+4.0开发平台设计程序,PB5
2、.0进行系统定制,硬件方面采用的是PXA270-S实验开发箱。整个设计流程将在本论文主体部分进行详细的叙述。从定制自己所需的winCE系统、运用MFC基于对话框的C+语言编写贪吃蛇游戏源代码到最终下载程序到实验开发板的整个过程都做了很详细的介绍。关键词:winCE5.0、EVC+4.0、PB5.0 、嵌入式系统、贪吃蛇游戏目 录摘 要2引 言11系统概要设计21.1系统的整体结构21.1.1 系统的定制21.1.2 程序的编写21.2系统的硬件构建41.3系统的软件组成52.系统的详细设计62.1 定制winCE内核62.1.1 winCE内核定制原理以说明62.1.2 winCE内核定制72
3、.2 贪吃蛇游戏详细设计开发82.2.1 贪吃蛇游戏的可行性分析82.2.2 贪吃蛇游戏的需求分析82.2.3 贪吃蛇游戏的总体功能图102.2.4 贪吃蛇游戏的实现的功能模块102.2.5 贪吃蛇游戏的主要功能设计思路112.2.6 贪吃蛇游戏界面的实现162.2.7 贪吃蛇游戏主要代码说明173.系统整合及测试263.1 系统整合263.2 系统整体测试273.2.1 系统规则测试273.2.2 按键功能测试283.2.3 分数和关卡测试32结论34引 言随着计算机技术的快速发展,嵌入式技术也相应的取得了突破性的进展,嵌入式设备正日益渗透到人们的日常生活中,默默地为我们提供连接和服务,嵌入
4、式设备往往是一个资源有限的系统,它们追求的是在有限的价格上满足一定的功能性要求。通常它们采用那些功能并不强大的CPU,这也是开发者不得不尽可能地压缩嵌入式系统性能的原因。最初的嵌入式设备是单一用途的,它们拥有各自独特的显示方式和用户界面,而今天它们变成了类似PC系统。它们可以运行很多相同的应用程序。针对嵌入式资源的限制,如何将对资源有很大依赖性的大规模的计算,成功的移植到嵌入式系统中,并能使其达到类似与在PC 上计算的效果。针对此问题,必须对原适用于PC上的游戏引擎做出修改,才能使其在嵌入式系统中成功的运行。因此需要在特定的环境下开发相应的游戏,这样才能在以后下载到相应的板子上进行效果演示。目
5、前嵌入式行业在中国得到了有效发展,但是规模相应的还与国际上有很大的差距,因此,为了能够让大家对基于嵌入式wince开发游戏得到有效的理解,本论文以贪吃蛇游戏为详细的例子,完整的阐述了嵌入式游戏的开发流程,以及演示结果,还有中间特别要注重的难点疑点的解析。本文对具体的开发流程都做了很详细的阐述,从编码到仿真,然后在定制系统内核,最后进行应用程序的下载,完成贪吃蛇游戏的具体效果演示,论文的后续都做了相当详细的解释。1系统概要设计1.1系统的整体结构1.1.1 系统的定制首先所需winCE系统内核的定制,通过PlatformBuilders5.0来定制自己所需要的系统内核,根据自己程序设计时所用到的
6、win32程序的接口,以及用到的库函数,类库,各种所需要的驱动,例如USB驱动,屏幕显示驱动,鼠标驱动,键盘驱动等,来定制自己所需要的系统内核,系统不必过于繁琐,达到自己所需要的功能即可,因为我们所强调的是嵌入式,嵌入式是以方便为前提的,定制的系统是以简洁方便为目的的,具体的定制细节我们在第四章将会详细介绍。1.1.2 程序的编写程序的名称是贪吃蛇游戏,采用的是VC+语言,MFC微软基础类库环境的单文档窗体。程序的大体思想是:采用一个二维数组(这里我们采用的是24*24的整形数组)作为贪吃蛇游戏的背景地图,数组的每个值代表地图上每个小矩形,而每个小矩形连续组成贪吃蛇的蛇身,在程序初始化窗体时候
7、调用这个函数,刷新出程序的背景地图;程序贪吃蛇的蛇身用一个Cpoint 类的一位连续数组,Cpoint类是一个结构体类型,结构体类型里包含着两个整形参数x和y 代表的是屏幕窗体上的某一个对应的点的坐标,我们在得知点的坐标的同时,就明确了对应二维数组地图上的某个矩形区域的坐标值,这样用Cpoint类的一位数组我们可以存放蛇身的每个节点的坐标,于此同时,我们在程序snake类里面设定蛇头和蛇尾的坐标变量、蛇身长度的坐标变量,这样在程序调用Timer()系统函数定时刷新时,每次刷新只需要改变蛇头和蛇尾的坐标即可,每次刷新时,根据舍身前进方向判断下一个头节点的坐标值,然后添加到Cpoint类定义的蛇身
8、节点,而蛇尾节点坐标值是前一个状态的倒数第二个节点,然后调用库函数FillSolildRect()函数刷新头节点为蛇的自身颜色,而尾节点是地图背景颜色,这样我们在外观看起来就是蛇身前进的效果。那么,我们怎么判断蛇头前进的方向呢?这个问题的解决方式是,在定义snake类的同时,定义了一个私有变量Direction为蛇动态前进的方向,而每次Timer()刷新时,动态的根据键盘响应函数来判断前进方向,并同时给Direction赋值,这样每次刷新的同时Direction为四个方向(上、下、左、右)其中的一个方向,蛇头前进的方向在此时已经确定,这样就动态的根据输入的键盘值来改变蛇的前进方向,我们就可以控
9、制蛇的移动啦!最后,在蛇动态效果显示出来的同时,我们也应该考虑到蛇的生命周期问题,就是蛇在什么情况下会死亡,在什么情况下会得分,在什么情况下会自身长度增加等一系列相关问题。这里我们首先考虑到一个十分重要的问题,就是蛇遇到食物(这里我们用一个蓝色的小矩形表示蛇的食物苹果)同时,将食物吃掉并且动态自身增加一节,这里我们是这样实现的:首先实现的是食物的随机出现,在某个食物被吃掉的同时,我们要立即产生出下一个食物的坐标,我们用到的是一个随机函数产生出下一个食物的坐标,但是这个坐标必须仅仅在023之间,因为我们地图采用的是一个24维的二维数组表示的,地图每个横坐标纵坐标的范围是023,但是,这里注意一个
10、特别重要的问题,就是每次随机产生的食物坐标不能出现在当前蛇身上,我们必须加一个判断,如果产生的坐标在蛇身上,必须重新生成,一直到产生一个在地图上并且不在蛇身上的食物坐标为止;当蛇头坐标的下一个前进方向的坐标和食物坐标相等时,我们在这里是将食物坐标改变成当前蛇头坐标,并且蛇尾坐标不变,蛇身长度增加一个单位,这样就动态的现实出来蛇吃食物自身增加一个的效果。生命周期的问题:在我们解决上述功能的同时,我们不得不考虑一个问题,那就是蛇的生命周期问题,就是蛇在身条件下会死亡,死亡的结果会是怎么样,我们在这里做了一个判断,就是蛇遇到地图周围的墙和遇到自己的身体蛇会死亡,生命周期结束,于此同时记录下当前玩家所
11、得的分数,比较分数来判断玩家的能力程度,那么我们怎么判断蛇头撞墙和蛇头撞到自身呢?继承上一个问题的解决方式,蛇身用到的是Cpoint类的一个一维数组表示,地图用到的是一个二维数组表示,当蛇头节点的左边和二维数组边界值相等时,或者蛇头坐标变为蛇自身的坐标时,蛇死亡,生命周期结束,关闭定时器函数Timer(),初始化游戏界面,记录当前分数,重新等待游戏开始。到此为止,贪吃蛇游戏的大概思路就解决了。1.2系统的硬件构建 硬件环境分析:系统硬件平台采用的是PXA270-S实验开发板,开发板提供了多种CPU内核共大家使用,具体的内核信息详细如下:X86:支持的处理器包括486、586、Geode、Pen
12、tium I/II/III/IV。ARM:支持的处理器包括ARM720T、ARM920T、ARM1020T、StrongARM、Xscale。SHx:支持的处理器包括SH-3、SH-3 DSP、SH-4。MIPS:支持的处理器包括MIPS II/32(带浮点运算)、MIPS II/3(不带浮点运算)、MIPS16、MIPS IV/64(带浮点运算)、MIPS IV/6(不带浮点运算)。软件环境分析:PC机操作系统Win2000或以上,EVC4.0开发环境,WinCE500标准SDK,PXA270-S平台SDK。1.3系统的软件组成PC机操作系统Win2000或以上,EVC4.0开发环境,Win
13、CE500标准SDK,PXA270-S平台SDK。2.系统的详细设计2.1 定制winCE内核2.1.1 winCE内核定制原理以说明 定制winCE内核之前,我们首先要做的准备工作详见下:首先是安装PB工具,我们这里之前已经提及,所以就不再过多叙述。在实际操作中,我们主要有如下的注意事项: (1)推荐安装在分区根目录下。并且分区需要保持足够大的硬盘空间,一般需要5G以上,PB和运行在PC的WinCE环境需要安装在一个分区内。安装时间通常较长,网络安装的版本同时依赖网络的速度。 以下是微软推荐的最小配置,低于该配置PB工具将不能正常安装或使用;处理器:至少266MHz Pentium II以上
14、;推荐使用500MHz Pentium III以上CPU;操作系统:Windows 2000 SP2以上;Windows XP;内存要求:至少128M;使用模拟器时候至少192M(不包括操作系统本身占用的内存)硬盘:典型安装时,选择一种处理器需至少1.7G空间;若要包含Platform Builder的完整工具组在内需要至少12G的硬盘空间。光驱:可以使用与桌面系统相兼容的CD-ROM或DVD-ROM等。 (2)在安装过程中,会提示选择处理器体系结构,务必选中ARMV4I和XSCALE两项,否则无法支持PXA270处理器。 (3)如果PC上使用的操作系统为Windows XP SP2,可能出现
15、严重安装问题,最好不要采用Windows XP SP2,或者在微软网站上搜索相关的指导文档。安装过程中请关闭系统防火墙。然后需要建立系统最基本的配置。打开PB 5.0,首先导入我们提供的BSP包。导入BSP的过程很简单,只需要安装光盘中提供的up270classic_BSP文件就可以实现,可以由指导教师提前完成。安装完,会发现在系统的WINCE500Platform路径下出现“Up_PXA270cl”文件夹,这个就是安装好的BSP了。之后建立UP-TECH S2410/P270 DVP的WinCE工程,都需要建立在这个BSP的基础上。(类似地,你也可以自己构建系统自带的Mainstone II
16、的工程,但是它不能运行在UP-TECH S2410/P270 DVP实验箱上)。2.1.2 winCE内核定制我们在编译winCE内核镜像前,需要添加特性目录(Catalog)的一些组件来定制内核,我们在本系统需要添加以下的组件:(1)添加鼠标键盘控制驱动; (2)添加USB主控制器驱动;(3)添加USB从控制器驱动(建立与PC机的Activesyn。连接需要此特性);(4)添加串口驱动; (5)添加触摸屏驱动;(6)添加IE6.0浏览器驱动;(7)添加拨号网络组件驱动;(8)添加Fat文件系统;. (9)加入对HIVE注册表的支持;(10)加入对Mediaplayer播放器;(11)加入对本
17、地存储器中的mp3和wMA文件播放的支持。除了上述所需的添加组件外,我们还需要一些另外的组件。2.2 贪吃蛇游戏详细设计开发2.2.1 贪吃蛇游戏的可行性分析 通过查找相关文档和技术支持,了解了EVC环境下的开发过程,熟悉了VC+语言的开发技巧,通过以下几个方面,进行可行性分析:1. 参考贪吃蛇游戏用户描述文档、软件工程等书,确定自己能够在自己能力范围内开发出这个贪吃蛇游戏项目。2. 功能要求:在进行整个项目开发之前,必须要做的就是确定贪吃蛇游戏的主要功能,必须明确贪吃蛇游戏的功能,因为要进行游戏功能可行性分析,经过自己的查阅相关资料,确定了贪吃蛇游戏的具体功能,详见后续部分详细设计。3. 性
18、能需求:必须保证自己开发的贪吃蛇游戏能够整体尽可能做到高效快速,不占用大量的使用资源,因为我做的是一个嵌入式的游戏开发项目,必须要考虑资源使用情况,要求尽可能少用资源,在有限的资源范围内实现最大的可利用价值。4. 运行环境:PXA270-S开发板,EVC +4.0开发平台,模拟器上进行调试,经过安装软件,确定可以进行项目程序的编写。5. 界面要求:采用Windows标准界面,只需要使用键盘和鼠标。6. 完成期限,一个学期完成整个系统,包括程序的编写,硬件板子的下载,以及最终的调试,测试阶段。2.2.2 贪吃蛇游戏的需求分析文档包括了嵌入式技术领域的介绍,嵌入式国内外环境的探索与简介,主要从我国
19、嵌入式领域发展的最新阶段来探讨,与国际对比得出相应发展的前景,同时,针对自身对嵌入式方面的兴趣爱好,以及自己所掌握的有限知识来对嵌入式方面的一些看法等,另外还有winCE环境的简介,以及用法,还有关于嵌入式基于winCE的开发流程的一些相关文档,还有EVC+4.0开发工具的使用方法的介绍,以及游戏的详细代码的功能简介等。游戏功能:能够实现贪吃蛇自动前线移动,也就是贪吃蛇能够“活动”的外观效果,根据相同的时间间隔,每一次将贪吃蛇自身的蛇头向前移动一个小格子,同时蛇尾向前移动一个小格子,移动方向为贪吃蛇行走的方向。对游戏中规则进行判断,当游戏中的贪吃蛇遇到墙壁和自身时,根据规则判断应为死亡,宣告当
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 嵌入式 贪食 设计 实现 讲解

链接地址:https://www.31ppt.com/p-4043390.html