手机贪吃蛇游戏的开发.docx

上传人:时光煮雨 文档编号:15023260 上传时间:2022-03-05 格式:DOCX 页数:11 大小:86.57KB
返回 下载 相关 举报
手机贪吃蛇游戏的开发.docx_第1页
第1页 / 共11页
手机贪吃蛇游戏的开发.docx_第2页
第2页 / 共11页
手机贪吃蛇游戏的开发.docx_第3页
第3页 / 共11页
手机贪吃蛇游戏的开发.docx_第4页
第4页 / 共11页
手机贪吃蛇游戏的开发.docx_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《手机贪吃蛇游戏的开发.docx》由会员分享,可在线阅读,更多相关《手机贪吃蛇游戏的开发.docx(11页珍藏版)》请在三一文库上搜索。

1、计算机项目实践(1)课程设计说 明 书设计题目: 手机贪吃蛇游戏开发 班 级: 学 号: 姓 名: 指导教师: 完成日期: 2010-1-14 目 录一、需求分析 31.1 概述 31.2 技术原理 3二、模块功能说明(概要设计) 3三、详细设计 43.1 系统设计 43.2 功能实现 4四、任务进度表 9五、测试结果 9六、设计小结 10七、用户使用说明 10参考文献 10一、需求分析1.1 概述随着通信技术的发展和手机的普及,手机游戏的开发技术越来越为人们所关注,这次的项目就是用J2ME开发的贪吃蛇游戏的应用程序,设计一个基于Java语言的游戏程序,使它能在手机模拟器上运行经典的贪吃蛇游戏

2、。它的主要功能有:游戏规则的实现,积分计算,界面功能。1.2 技术原理J2ME游戏开发技术是支持像小型嵌入式设备或移动设备而制定的一系列的技术和规范的总称,它是JAVA语言的一个分支,遵循JAVA 的规则,是一个运行平台,特别适用于手机用户的游戏开发。本项目的贪吃蛇游戏就是基于J2ME游戏技术开发的。本次实训开发工具为Eclipse,使用JAVA 功能,支持RMS持久化数据库,可以保存游戏的积分,等级,速度等。用户也可以自行设置游戏的一些规则。其技术原理涉及MIDP简表:针对移动信息处理设备(主要指智能手机和一部分具有无线通信功能的PDA)的图形界面、输入和时间处理、持久性存储、无线电话。MI

3、DP的总体框架: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. SnakeC

4、anvas类:int direction3.2 功能实现:1、 游戏初始化:其实现的功能是初始化游戏的数据,实现该功能首先需要清晰的知道需要初始化那些数据,如何进行初始化。将贪吃蛇基本初始化在屏幕的中央,初始移动方向和贪吃蛇节点的排列顺序一致,食物的坐标固定位置。游戏初始化的代码如下: /*初始化开始数据*/ private void init() / 初始化节点数量 snakeNum = 7; / 初始化节点数据 for (int i = 0; i 0; i-) snakei0 = snakei - 10; snakei1 = snakei - 11; / 第一个单元格移动 switch (

5、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技术中

6、事件处理的编程方式,实现的代码如下: /*事件处理*/ 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 !

7、= 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、 食物坐标的随机生成:需要实现如下要

8、求: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

9、+ 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

10、_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) /左软键 isPau

11、sed = !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; / 控制闪烁 r

12、epaint(); / 重新绘制 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号游戏操作控制的设置,界面的设

13、置完成无1月15日说明书的撰写完成无五、测试结果表5.1 系统测试结果测试内容预期结果实际结果评价游戏初始化实现初始化实现完成很好贪吃蛇方向控制实现控制实现完成良好贪吃蛇和食物的碰撞处理能正常实现实现完成很好游戏结束的判别能正确判别实现完成很好游戏暂停的控制能无误控制实现完成良好六、设计小结经过两周的程序综合实训,我们对ECLIPSE这个开发软件有了更深一步的了解,对J2ME的认识也有所提高。本次JAVA贪吃蛇游戏设计意义深重,对于巩固JAVA知识的运用和实践的推广起到重要的意义。虽然在游戏的开发过程中,我遇到了许多的问题和错误,但是面对这些,我还是想尽一切办法去解决,或是上网找资料,或者请教

14、同学互相讨论一番。经过种种的曲折,现在一个比较完善的贪吃蛇游戏总算完成了,我这两周的所付出的努力和心血总算没有白费。JAVA程序编程时实践性很强的一门计算机课程。其目的是使我们能够巩固所学的J2ME语言知识,增进J2ME语言编程的的理解。通过这次实训,我学会了用J2ME进行手机游戏的简单编写,让我更好的了解了相应的专业知识和技能,更加明白理论和实践相结合的重要意义。其实,J2ME并不是那么难的,只要用心,打好基础,把它掌握好还不会是问题的。希望在以后能对J2ME 有更好的了解!七、用户使用说明首先但运行游戏代码时,则会出现一个用户界面,上面会提示你按屏幕右下角的菜单键就会进入游戏,左边则是退出

15、游戏。点击menu后,又会显示游戏界面,上面会有“帮助说明“,”返回“,”难度选择“,”新游戏“等按键。1. 点击“开始游戏“时,则会出现贪吃蛇的游戏,按上下左右就可以移动蛇去吃食物了。2. 点击“帮助说明“时,则会显示如何使用该游戏。以及一些游戏的规则。3. 点击“难度选择“时,则又会出现选择”初级“,”中级“,”高级“的选项按钮,这个可以根据用户自己的水平或爱好来选择相应的游戏困难度。4. 点击“返回“时,则会层层返回上一页。5. 点击“新游戏“的按钮时,则会重新开始新的贪吃蛇游戏!参考文献1. 王克宏 著. Java技术教程(基础篇). 北京:高等教育出版社,2002.042. 孙燕 主编. Java入门与实例教程. 上海:上海出版社,2003.013. 叶核亚,陈立著. Java2程序设计使用教程. 北京:电子工业出版社,2003.54. Harvey M.Deitel, Paul J.Deitel 著. Java How to Program . 湖北工业出版社,2002.01

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1