android创新实验报告gfw.docx
《android创新实验报告gfw.docx》由会员分享,可在线阅读,更多相关《android创新实验报告gfw.docx(75页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、项目编号 创新实验报告实验项目名名称 基于于Anddroiid手机机操作系系统的游游戏软件件开发学 生 姓姓 名 石皓程程 樊峰峰辰 学生学号 022111122118/021111222300 所在学院 电子子电气工工程学院院 指导教师 施一萍萍 目录一、 实验目的二、 实验方案2.1总体体设计思思想 2.22实验流流程(步步骤) 2.33实验环环境 2.44实验分分工三、 实验过程3.1Anndriiod软软件开发发环境搭搭建3.2模块块划分3.3游戏戏主界面面模块3.4游戏戏控制模模块3.5模块块实现原原理3.51游游戏界面面模块实实现3.52游游戏控制制模块实实现3.6游戏戏界面具具体
2、实现现 3.661蛇身身、食物物和墙的的实现 3.662处理理键盘事事件 3.663 TTileeVieew类的的设计 3.664 SSnakkeViiew类类的设计计 3.665 RRefrreshhHanndleer类的的设计3.7程序序调试与与运行四、 实验结果和和分析五、 参考文献六、 附录一 代代码清单单七、 附录二 环环境搭建建和运行行 一 实验目的贪吃蛇游戏戏一款非非常经典典的手机机游戏,因因为它比比较简单单有趣,无无论老少少都比较较适合。贪贪吃蛇的的设计对对每一个个Javva语言言设计者者进行语语言提高高和进阶阶都是一一个很好好的锻炼炼机会。 贪贪吃蛇游游戏的设设计比较较复杂,
3、它它涉及面面广、牵牵涉方面面多,如如果不好好好考虑虑和设计计,将难难以成功功开发出出这个游游戏。在在这个游游戏的设设计中,牵牵涉到图图形界面面的显示示与更新新、数据据的收集集与更新新,并且且在这个个游戏的的开发中中,还要要应用类类的继承承机制以以及一些些设计模模式。因因此,如如何设计计和开发发好这个个贪吃蛇蛇游戏,对对于提高高Javva开发发水平和和系统的的设计能能力有极极大的帮帮助。在在设计开开发过程程中,需需要处理理好各个个类之间间的继承承关系,还还要处理理各个类类相应的的封装,并并且还要要协调好好各个模模块之间间的逻辑辑依赖关关系和数数据通信信关系。本项目在AAndrroidd平台下下,
4、使用用Javva语言言,Anndrooid开开发技术术开发一一款界面面友好,功功能齐全全的贪吃吃蛇游戏戏。二 实验方案2.1总体体设计思思想 本软软件是针针对贪吃吃蛇小游游戏的JJAVAA程序,利利用上、下下、左、右右方向键键来改变变蛇的运运动方向向,长按按某个方方向键后后,蛇的的运动速速度会加加快,在在随机的的地方产产生食物物,吃到到食物就就变成新新的蛇体体,碰到到壁或自自身则游游戏结束束,否则则正常运运行游戏戏,在到到达固定定的分数数后,游游戏速度度会加快快。2.2实验验流程Java编编程语言言Androoid软软件的开开发环境境搭建(Eclipse开发软件、Android SDK开发框架
5、、Android Development Tool开发环境)Androoid程程序的框框架结构构游戏软件的的开发2.3实验验环境 实验地地点在实实训楼11号楼计计算中心心。计算算中心具具有较好好的实验验设备,拥拥有较高高配置的的PC机机3000台(IInteel酷睿睿2 QQ83000四核核处理器器、2GG内存),都都可以接接入校园园网和IInteer网,完完全能满满足该创创新实验验项目的的需要。2.4实验验分工 李 琦:环境的的搭建和和游戏的的编译 邵彧彧韬:截截图和后后期的制制作三 实验过程3.1Anndriiod软软件开发发环境搭搭建 采用eecliipsee开发工工具在winndoww
6、s7下下进行,基于安安卓2.2操作作系统。 环境搭建:1. JJDK安安装 2. EEcliipsee安装 3. AAndrroidd SDDK安装装 4. AADT安安装创建建AVDD软件总体设设计 工程程中包括括4个AActiivitty,分分别为SSnakke(主主界面)、GGamee(游戏戏界面)、HHelpp(游戏戏说明界界面)、AuthorView(作者信息界面),通过不同Activity之间的转换实现不同界面之间的切换。Snake(Activity)继承了SnakeView类,SnakeView类继承了TileView类。TileView类继承了View其实 Snake的工程蛮简
7、单的,源文件就三个: Snake.java SnakeView.java TileView.java。 Snake类是这个游戏的入口点, TitleView类进行游戏的绘画, SnakeView类则是对游戏控制操作的处理。 Coordinate, RefreshHandler是 2个辅助类,也是 SnakeView类中的内部类。其中, Coordinate是一个点的坐标( x, y), RefreshHandler将 RefreshHandler对象绑定某个线程并给它发送消息。如下图: 图3.13.2模块块划分从面向对象象程序设设计的角角度,本本项目总总体地可可以分为为游戏界界面模块块、数据据
8、存储模模块和控控制模块块。如下图所示示:游戏数据存储模块贪吃蛇游戏游戏主界面模块游戏控制模块图3.2游戏总体模块3.3游戏戏主界面面模块游戏界面主主框架主主要包括括游戏图图形区域域界面、游游戏的开开始按钮钮、暂停停按钮、游游戏的退退出按钮钮。游戏界面主主框架的的主要结结构图如如图3.3所示示。游戏的主界面架游戏图形区域界面(即游戏画布)游戏控制按钮界面图3.3 游戏主界面3.4 游游戏控制制模块 游戏戏控制模模块主要要通过手手机键盘盘上的按按钮来控控制游戏戏的开始始、游戏戏的暂停停、游戏戏的退出出这三个个功能以以及控制制游戏分分数变化化。在这这个模块块中,需需要给各各个按钮钮添加响响应事件件代
9、码,来来对上述述的功能能加以进进一步的的实现。游戏控制模模块的主主要框架架如图33.4所所示。游戏控制模块游戏的移动速度功能能游戏的暂停功能游戏的重新开始图3.4 游戏控制模块框架3.5模块块实现原原理3.5.11游戏界界面模块块实现1.实现游游戏背景景本游戏采用用Acttiviity作作为游戏戏背景的的载体,在Anndrooid中中一个AActiivitty就相相当于wwinddowss中的一一个窗口口,Acctivvityy上可以以放置许许多类型型的控件件。一个个acttiviity主主要有三三个状态态:当在屏幕前前台时(位位于当前前任务堆堆栈的顶顶部),它它是活跃跃或运行行的状态态。它就
10、就是相应应用户操操作的aactiivitty。 当它失去焦焦点但仍仍然对用用户可见见时,它它处于暂暂停状态态。即是是:在它它之上有有另外一一个acctivvityy。这个个acttiviity也也许是透透明的,或或者未能能完全遮遮蔽全屏屏,所以以被暂停停的acctivvityy仍对用用户可见见。暂停停的acctivvityy仍然是是存活状状态(它它保留着着所有的的状态和和成员信信息并连连接至窗窗口管理理器),但但当系统统处于极极低内存存的情况况下,仍仍然可以以杀死这这个acctivvityy。如果它完全全被另一一个acctivvityy覆盖是是,它处处于停止止状态。它它仍然保保留所有有的状态态
11、和成员员信息。然然而它不不在为用用户可见见,所以以它的窗窗口将被被隐藏,如如果其它它地方需需要内存存,则系系统经常常会杀死死这个aactiivitty。如果一个aactiivitty处于于暂停或或停止状状态,系系统可以以通过要要求它结结束(调调用它的的 fiinissh() 方法法)或直直接杀死死它的进进程来将将它驱出出内存。当当它再次次为用户户可见的的时候,它它只能完完全重新新启动并并恢复至至以前的的状态。当一个acctivvityy从这个个状态转转变到另另一个状状态时,它它被以下下列prroteecteed方法法所通知知:void onCCreaate(Bunndlee saaveddIn
12、sstannceSStatte) 、vooid onSStarrt() 、vvoidd onnResstarrt() 、vvoidd onnRessumee() 、vooid onPPausse() 、vvoidd onnStoop() 、vvoidd onnDesstrooy()2. 实现蛇的身身体蛇可以看做做是一个个个节点点组成的的,因此此可以用用一个链链表来存存储蛇身身的元素素,在画画蛇时遍遍历这个个链表讲讲里面的的元素一一一画出出,这样样就实现现了一条条蛇.3. 实现蛇的移移动用一个tiimerr(定时时器)来来不断地地刷新游游戏画面面,每刷刷新一次次就再蛇蛇头的前前面(链链表的尾尾部
13、)增增加一个个新元素素,同时时把蛇尾尾的一个个元素删删掉,这这样从视视觉上看看起来就就实现了了蛇的移移动.4. 实现蛇吃食食物 蛇移移动的过过程中如如果蛇头头的坐标标与食物物出现的的坐标重重合了,那么就就在蛇头头的位置置增加一一个元素素同时不不删除蛇蛇尾的最最后一个个元素,这样蛇蛇每迟到到一个食食物身体就就会变长长一截.3.5.22 游戏戏控制模模块实现现1. 实现操作蛇蛇的移动动方向在Andrroidd系统中中,手机机上的每每个按钮钮都会有有一个对对应的键键值跟它它对应,所所在可以以给对应应的按钮钮设置监监听器OOnCllickkLisstenner,监听器器是一个个接口,该接口口中有一一个
14、方法法onCClicck(VVieww v)。当按按钮被点点击的时时候系统统会自动动调用该该监听器器的onnCliick(Vieew vv)方法法。所以以实现游游戏控制制的具体体代码将将被写到到该方法法中。因为本游戏戏中不允允许蛇向向与蛇头头相反的的方向移移动,所所以当用用户操作作时需要要判断用用户操作作的方向向是不是是跟规则则冲突,若若冲突则则无视该该操作,若若不冲突突则响应应该操作作,所以以需要用用一个变变量来记记录蛇头头的当前前方向。2. 实现游戏暂暂停 在Acctivvityy的生命命周期中中,有一一个onnPauuse()方法法.该方方法在AActiivitty变得得不可见见的时候候
15、被系统统自动调调用.在在玩游戏戏过程中中,如果果有来电电或是其其它事件件中断,这时应该把当前状态保存。以便返回时,还可以继续玩游戏。这就使用onSaveInstanceState实现保存当前状态。3. 实现游戏恢恢复Activvityy生命周周期的onReesumme()方法.该方法法在Acctivvityy从不可见见的状态态下变得得可见时时被系统统自动调调用.在在用户接接完电话话或者在在暂停状状态下触触摸屏幕幕后可以以在该生生命周期期方法中中对游戏戏进行恢恢复.4. 实现游戏退退出当一个Acctivvityy退出或或者被调调用fiinissh()方法后后,系统统会调用用其生命命周期方方法on
16、nDesstrooy().当用用户退出出游戏时时,可以以在这个个方法中中对资源源进行释释放.3.6游戏戏界面具具体实现现3.6.11 蛇身身、食物物和墙的的实现前面已经提提过,蛇蛇身的数数据用一一个链表表来存储储,具体体我使用用ArrrayLListt来实现现。蛇身身的每个个元素、食食物和墙墙都是一一个坐标标对象,画画这些东东西的时时候只需需要把它它们的坐坐标传给给画的方方法就行行了。这这里需要要引进一一个坐标标类Cooorddinaate,这这是一个个包括两两个参数数,用于于记录XX轴和YY轴简单单类,其其中包括括一个比比较方法法,该方方法用于于判断蛇蛇头于食食物或者者墙是否否重合.该类的的
17、代码如如下:classs Cooordiinatte pubblicc intt x; pubblicc intt y; pubblicc Cooorddinaate(intt neewX, innt nnewYY) x = newwX; y = newwY; pubblicc boooleaan eequaals(Cooordiinatte ootheer) iff (x = ottherr.x & y = ottherr.y) rretuurn truue; reeturrn fallse; pubblicc Sttrinng ttoSttrinng() reeturrn Cooorddi
18、naate: + x + , + y + ; 蛇身的初始始长度我我设置为为5,nnew 5个CCoorrdinnatee的对象象放入AArraayLiist中中。整个个屏幕可可以看做做是有很很多个网网格组成成的,而而蛇就在在这些网网格中移移动。用用一个二二维数组组intt mmTilleGrrid来来存储网网格的坐坐标,将将蛇身、食食物或者者墙的坐坐标传到到该数组组中,oonDrraw方方法按照照该数组组中的坐坐标将屏屏幕相应应位置的的网格填填充成位位图。画画蛇身、食食物、墙墙的方法法为: ppubllic voiid oonDrraw(Cannvass caanvaas) supper.on
19、DDraww(caanvaas); forr (innt xx = 0; x mXXTilleCoountt; xx +) foor (intt y = 00; yy 0) cannvass.drrawBBitmmap(mTiileAArraaymTiileGGriddxy, mXOOffsset + xx * mTiileSSizee, mYOOffsset + yy * mTiileSSizee, mPaaintt); 3.6.22处理键键盘事件件使用Vieew类的的onKKeyDDownn方法,该该方法由由系统监监听调用用。根据据按键的的值处理理响应事事件,该该方法中中解决了了反向移移动
20、的问问题。mmDirrecttionn 为当前前蛇头的的方向,mNextDirection 为按键对应的方向,按键按下后会先判断当前方向是否跟下一方向相反,若相反则不响应事件。具体代码如下: ppubllic boooleaan oonKeeyDoown(intt keeyCoode, KeeyEvventt mssg) if (keyyCodde = KKeyEEvennt.KKEYCCODEE_DPPAD_UP) iff (mMModee = REEADYY | mMoode = LOSSE) iinittNewwGamme(); ssetMModee(RUUNNIING); uupdaa
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- android 创新 实验 报告 gfw
限制150内