贪吃蛇手机游戏开发实践报告样本.doc_第1页
贪吃蛇手机游戏开发实践报告样本.doc_第2页
贪吃蛇手机游戏开发实践报告样本.doc_第3页
贪吃蛇手机游戏开发实践报告样本.doc_第4页
贪吃蛇手机游戏开发实践报告样本.doc_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

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

文档简介

贪吃蛇游戏实践报告说 明 书设计题目: 班 级: 学 号: 姓 名: 指导教师: 目 录一、需求分析 31.1 概述 31.2 技术原理 3二、模块功能说明(概要设计) 3三、详细设计 43.1 系统设计 43.2 功能实现 4四、任务进度表 9五、测试结果 9六、设计小结 10七、用户使用说明 10参考文献 10一、需求分析1.1 概述随着通信技术的发展和手机的普及,手机游戏的开发技术越来越为人们所关注,这次的项目就是用J2ME开发的贪吃蛇游戏的应用程序,设计一个基于Java语言的游戏程序,使它能在手机模拟器上运行经典的贪吃蛇游戏。它的主要功能有:游戏规则的实现,积分计算,界面功能。1.2 技术原理J2ME游戏开发技术是支持像小型嵌入式设备或移动设备而制定的一系列的技术和规范的总称,它是JAVA语言的一个分支,遵循JAVA 的规则,是一个运行平台,特别适用于手机用户的游戏开发。本项目的贪吃蛇游戏就是基于J2ME游戏技术开发的。本次实训开发工具为Eclipse,使用JAVA 功能,支持RMS持久化数据库,可以保存游戏的积分,等级,速度等。用户也可以自行设置游戏的一些规则。其技术原理涉及MIDP简表:针对移动信息处理设备(主要指智能手机和一部分具有无线通信功能的PDA)的图形界面、输入和时间处理、持久性存储、无线电话。MIDP的总体框架:MID硬件层、本地系统软件层、KVM层、CLDC层、MIDP层。其中还涉及到MIDP2.0的新特性,MIDP的安全机制等。二、模块功能说明(概要设计)模块一:欢迎界面及游戏选择界面。模块二:用户界面的编写和游戏元素的功能。模块三:蛇的移动。模块四:蛇吃掉一个目标并积分。模块五:游戏规则的设定和实现。模块六:游戏汇总和积分计算。三、详细设计3.1 系统设计1.food类:Int foodX Int foodY int foodC;2.snake类:Int Snake int snakeNum;3. GameObj类:int SNAKE_W int SNAKE_H4. SnakeCanvas类:int direction3.2 功能实现:1、 游戏初始化:其实现的功能是初始化游戏的数据,实现该功能首先需要清晰的知道需要初始化那些数据,如何进行初始化。将贪吃蛇基本初始化在屏幕的中央,初始移动方向和贪吃蛇节点的排列顺序一致,食物的坐标固定位置。游戏初始化的代码如下: /*初始化开始数据*/ private void init() / 初始化节点数量 snakeNum = 7; / 初始化节点数据 for (int i = 0; i 0; i-) snakei0 = snakei - 10; snakei1 = snakei - 11; / 第一个单元格移动 switch (direction) case DIRECTION_UP: snake01 = snake01 - SNAKEWIDTH; break; case DIRECTION_DOWN: snake01 = snake01 + SNAKEWIDTH; break; case DIRECTION_LEFT: snake00 = snake00 - SNAKEWIDTH; break; case DIRECTION_RIGHT: snake00 = snake00 + SNAKEWIDTH; break; 如图所示:3、 贪吃蛇方向控制:贪吃蛇方向的控制需要根据玩家的按键来改变蛇的方向,根据J2ME技术中事件处理的编程方式,实现的代码如下: /*事件处理*/ public void keyPressed(int keyCode) int action = this.getGameAction(keyCode); switch (action) case UP: if (direction != DIRECTION_DOWN) direction = DIRECTION_UP; break; case DOWN: if (direction != DIRECTION_UP) direction = DIRECTION_DOWN; break; case LEFT: if (direction != DIRECTION_RIGHT) direction = DIRECTION_LEFT; break; case RIGHT: if (direction != DIRECTION_LEFT) direction = DIRECTION_RIGHT; reak; 4、 贪吃蛇和食物的碰撞和处理:则本规则的实现代码如下: /*吃掉食物,自身增长*/ private void eatFood() / 判别蛇头是否和食物重叠 if (snake00 = foodX & snake01 = foodY) snakeNum+; generateFood(); 5、 食物坐标的随机生成:需要实现如下要求:a、 坐标位于屏幕以内b、 坐标不能和贪吃蛇任何一个节点重合c、 坐标必须是贪吃蛇节点宽度的整数倍(该要求和贪吃蛇的碰撞检测算法匹配)。按照以上逻辑实现的程序代码如下: /*产生食物*/ private void generateFood() while (true) /屏幕范围内,且是蛇身宽度的整数倍 foodX = Math.abs(random.nextInt() % (width - SNAKEWIDTH + 1) / SNAKEWIDTH * SNAKEWIDTH; foodY = Math.abs(random.nextInt() % (height - SNAKEWIDTH + 1) / SNAKEWIDTH * SNAKEWIDTH; /判断是否和蛇节点重叠 boolean b = true; for (int i = 0; i 0;i-) snakei*3+0 = snake(i-1)*3+0; snakei*3+1 = snake(i-1)*3+1; /第一个单元格移动 stepX = 0; stepY = 0; switch(direction) case DIR_UP: stepY = -SNAKE_H; break; case DIR_DOWN: stepY = SNAKE_H; break; case DIR_LEFT: stepX = -SNAKE_W; break; case DIR_RIGHT: stepX = SNAKE_W; break; snake0*3+0 += stepX; snake0*3+1 += stepY; 然后在程序中利用该方法的返回值,控制游戏中界面的切换等,从而实现游戏结束的功能。7、 游戏暂停的控制在程序中这样来实现暂停,使用变量isPaused的值来控制线程逻辑和事件处理,当按下暂停键时设置该变量为true,当按下继续键时设置该变量为false。实现的代码如下: /*事件处理*/ public void keyPressed(int keyCode) if(keyCode = -6) /左软键 isPaused = !isPaused; if(keyCode = -7) /右软键 SnakeMIDlet.quitApp(); if(isPaused) /如果暂停则不能控制移动方向 return; 代码如下:/*线程方法 使用精确延时*/ public void run() try while (isRun) / 开始时间 long start = System.currentTimeMillis();if (!isPaused) /如果不暂停 eatFood(); / 吃食物 move(); / 移动if (isGameOver() / 结束游戏 break; b = !b; / 控制闪烁 repaint(); / 重新绘制 long end = System.currentTimeMillis();if (end - start SLEEP_TIME) / 延时Thread.sleep(SLEEP_TIME - (end - start); catch (Exception e) 四、任务进度表日期计划任务完成任务缺陷报告2009年12月30日2010年1月2日开发环境安装配置,系统需求分析完成无1月3到1月6日用户界面设置及相关链接完成无1月7日到1月10日实现蛇的运动和食物的事件完成无1月11日到12号实现方向控制,事件处理完成无1月13日到14号游戏操作控制的设置,界面的设置完成无1月15日说明书的撰写完成无五、测试结果表5.1 系统测试结果测试内容预期结果实际结果评价游戏初始化实现初始化实现完成很好贪吃蛇方向控制实现控制实现完成良好贪吃蛇和食物的碰撞处理能正常实现实现完成很好游戏结束的判别能正确判别实现完成很好游戏暂停的控制能无误控制实现完成良好六、设计小结经过两周的程序综合实训,我们对ECLIPSE这个开发软件有了更深一步的了解,对J2ME的认识也有所提高。本次JAVA贪吃蛇游戏设计意义深重,对于巩固JAVA知识的运用和实践的推广起到重要的意义。虽然在游戏的开发过程中,我遇到了许多的问题和错误,但是面对这些,我还是想尽一切办法去解决,或是上网找资料,或者请教同学互相讨论一番。经过种种的曲折,现在一个比较完善的贪吃蛇游戏总算完成了,我这两周的所付出的努力和心血总算没有白费。JAVA程序编程时实践性很强的一门计算机课程。其目的是使我们能够巩固所学的J2ME语言知识,增进J2ME语言编程的的理解。通过这次实训,我学会了用J2ME进行手机游戏的简单编写,让我更好的了解了相应的专业知识和技能,更加明白理论和实践相结合的重要意义。其实,J2ME并不是那么难的,只要用心,打好基础,把它掌握好还不会是问题的。希望在以后能对J2ME 有更好的了解!七、用户使用说明首先但运行游戏代码时,则会出现一个用户界面,上面会提示你按屏幕右下角的菜单键就会进入游戏,左边则是退出游戏。点击menu后,又会显示游戏界面,上面会有“帮助说明“,”返回“,”难度选择“,”新游戏“等按键。1. 点击“开始

温馨提示

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

评论

0/150

提交评论