ImageVerifierCode 换一换
格式:DOCX , 页数:25 ,大小:147.80KB ,
资源ID:3508031      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3508031.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(J2ME课程设计报告.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

J2ME课程设计报告.docx

1、J2ME课程设计报告J2ME 大作业专 业: 软件工程 课程名称: j2me 课题名称: 贪食蛇 学 号: 08201328 姓 名: 杨之光 一、绪论J2ME是为了能够开发运行在小型设备、独立设备、互联移动设备、嵌入式设备上的JAVA应用程序而被提出的。J2ME是建立在一个由概要描述、配置、JAVA虚拟机和操作系统等部分组成的标准架构之上的,这些内容共同组成了完整的J2ME实时运行环境。它的技术核心是由一个JAVA虚拟机( JVM )及一套适合运行在上述设备环境上的API接口构成。J2ME在1999年的JavaOne开发人员大会上初次亮相,它的目标是面向智能无线设备和小型计算设备的开发人员,

2、这些开发人员需要在他们的产品中整合跨平台的能力。无线设备和小型计算设备的消费者期望这些设备能够有较高的性能。他们希望小型计算设备有快速的响应时间,与同种设备相兼容,拥有功能完备的应用程序。消费者希望桌面计算机和笔记本电脑上的软件和功能同样能够运行在移动电话和个人数字助理上。为了满足他们的需求,开发人员必须重新考虑他们设计计算机系统的方式。开发人员需要利用商业计算机上现有的前端和后端软件的计算能力,并将这些能力传递到微型、移动和无线的计算设备上。J2ME能够以最小的修改来实现这种传递,如果应用程序的设计是可伸缩的,应用程序就可以适应小型计算设备上有限的资源。J2ME为在小型电子设备上创建性能卓越

3、的网络应用提供了一套完整的解决方案,能很好的解决软件跨平台的兼容性和安全性的问题。贪吃蛇,是个简单的小游戏,但却能给人以放松,让我们从繁重的日常生活中解脱出来.而只有我们的身心得到了娱乐才能更好的投入到新的工作.现在的人,不管是已经工作的,还是还未进入社会的学生,都面临着很大的压力,而这样一款能让我们随时随地都能享受的游戏,其魅力还是不可估量的.手机吞吃蛇游戏基于JAVA平台编写,采用J2ME技术开发的一款手机游戏。二、大作业题目 J2ME大作业题目:设计一个贪食蛇小游戏。三、概要设计 贪食蛇游戏是一条不停游动的蛇不断的捕食来达到自身的增长,但是若蛇碰到自身的身体或者碰到了任何障碍物,则游戏结

4、束。该游戏需要采用外部文件引入的图片贴图来绘制贪食蛇与食物的图标。在游戏中,蛇的位置通过蛇头的坐标来实现移动的操作,其中引入了线程,同时不断刷新界面,使得蛇身不断移动。在游戏过程中,贪食蛇的身体随着进食而增加其长度,当蛇头碰到不断增长的蛇身,游戏即结束。 四、详细设计1.Map类的设计: 该类是实现贪食蛇界面的类。该类通过将界面设计成一个数组来实现对于贪食蛇的控制,同时实现绘制界面的方法。 public class Map /绘制Map界面 Image image; TiledLayer mBackground; protected Map() try image = Image.create

5、Image(/body.png); /提取BODY图片 catch (IOException e) e.printStackTrace(); mBackground = new TiledLayer(17,17,image,8,8); int columns = mBackground.getColumns(); int map = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0

6、,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,

7、0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ; /绘制界面数组 for(int i = 0;i map.length;i+) int column = i % columns; int row = (i - column)/columns; mBackground.setCell(column, row, mapi); 2. SnakeImg类的设计: 该类是用于创建贪食蛇图标与食物图标

8、的类。通过该类对图片进行读取,从而在界面上绘制出图标。贪食蛇是由一个红色的head与三个蓝色的BODY组成,在游戏的过程中,蛇身不断随着进食而增长。食物由一个黑色方块构成。 public class SnakeImg /绘制游戏图标 Image head; /定义贪食蛇头对象 Image body; /定义贪食蛇身对象 Image food; /定义食物对象 Sprite headSprite; Sprite foodSprite; SnakeImg() try /读取图片 head = Image.createImage(/head.png); body = Image.createImag

9、e(/body.png); food = Image.createImage(/food.png); catch (IOException e) e.printStackTrace(); headSprite = new Sprite(head); foodSprite = new Sprite(food); 3. SnakeMidlet类的设计: 该类是本程序的MIDLET类。该类声明了SnakeMidlet,destroyApp,pauseApp,startApp等4个方法,从而保证了程序的顺利运行。public class SnakeMidlet extends MIDlet /定义MI

10、DLET类 SnakeThread snakethread; Display display; public SnakeMidlet() /声明SnakeMidle方法 display = Display.getDisplay(this); snakethread = new SnakeThread(); display.setCurrent(snakethread); protected void destroyApp(boolean arg0) throws MIDletStateChangeException /声明destroyApp方法 protected void pauseApp

11、() /声明pauseApp方法 protected void startApp() throws MIDletStateChangeException /声明startApp方法 4. SnakeThread类的设计: 该类是程序实现功能的类。通过该类实现SnakeThread线程的创建,通过贪食蛇的头的坐标来实现贪食蛇四个方向的移动,同时实现吃到食物实现自身的身长的增长,并且在该类中处理自动生成食物,越界与吃到食物的情况。public class SnakeThread extends GameCanvas implements Runnable /创建snakethread类 Graph

12、ics g; boolean isRun; SnakeImg img; Map map; int headX = 64; int headY = 64; int headMoveSign; int canpassSign; int bodyMoveSign; int changePointNum; int changePointX = new int100; int changePointY = new int100; int changePointSign = new int100; long gamestarttime; long timeSinceStart; int x = 8; in

13、t y = 8; int tailX; int tailY; int foodX; int foodY; Random r = new Random(); public SnakeThread() /创建snakethread线程 super(true); g = getGraphics(); img = new SnakeImg(); map = new Map(); start(); public void start() isRun = true; Thread t = new Thread(this); t.start(); public void run() setfood(); m

14、ap.mBackground.setCell(x, y-3, 1); map.mBackground.setCell(x, y-2, 1); map.mBackground.setCell(x, y-1, 1); while(isRun = true) gamestarttime = System.currentTimeMillis(); paintAll(); gameOver(); if(timeSinceStart 128) /处理越界情况 headY = 8; else if(headY 128) headX = 8; else if(headX 20) y=5; map.mBackg

15、round.setCell(x, y-4, 0); if(x = changePointX0 & y-4 = changePointY0) bodyMoveSign = changePointSign0; for(int i = 0;i 16) x=1; map.mBackground.setCell(x, y-4, 0); if(x = changePointX0 & y-4 = changePointY0) bodyMoveSign = changePointSign0; for(int i = 0;i changePointNum;i+) changePointXi = changePo

16、intXi+1; changePointYi = changePointYi+1; changePointSigni = changePointSigni+1; changePointNum-; else if(bodyMoveSign = 2) if(img.headSprite.collidesWith(img.foodSprite, true) setfood(); else y-; if(y5) y=20; map.mBackground.setCell(x, y-4, 0); if(x = changePointX0 & y-4 = changePointY0) bodyMoveSi

17、gn = changePointSign0; for(int i = 0;i changePointNum;i+) changePointXi = changePointXi+1; changePointYi = changePointYi+1; changePointSigni = changePointSigni+1; changePointNum-; else if(bodyMoveSign = 3) if(img.headSprite.collidesWith(img.foodSprite, true) setfood(); else x-; if(x1) x=16; map.mBac

18、kground.setCell(x, y-4, 0); if(x = changePointX0 & y-4 = changePointY0) bodyMoveSign = changePointSign0; for(int i = 0;i changePointNum;i+) changePointXi = changePointXi+1; changePointYi = changePointYi+1; changePointSigni = changePointSigni+1; changePointNum-; public void setfood() /定义FOOD坐标 foodX

19、= r.nextInt(16*8) + 8; foodY = r.nextInt(16*8) + 8; img.foodSprite.setPosition(foodX, foodY); public void gameOver() /当蛇头碰到蛇身,游戏结束 if(map.mBackground.getCell(headX/8, headY/8) = 1) isRun = false; 五、运行结果六、测试分析与体会小结本次大作业所开发的贪食蛇手机游戏,实现了手机游戏的一些基本和必需的功能。如游戏的界面绘制,对于接收玩家的方向控制键设置等功能。但游戏功能还存在着很多不足,首先,对游戏的动画设

20、计不够熟悉,技巧性不强,界面的设置也不够美观。这些对于玩家来说是非常重要,将直接决定本游戏的生存能力。其次,这款游戏中无法设置贪食蛇是否碰壁就算游戏结束。这次游戏的功能没能做到十全十美,是由于自身能力的不足和时间的限制,没有对游戏的开发进行进一步研究,还有很多地方需要改进。 通过这次贪食蛇手机游戏的开发,我初步熟悉了J2ME程序的编写方法,增加了对于MIDLET类与线程等知识的理解。同时本次开发实践让我初步掌握J2ME软件开发所需的基本技能和常用工具,为以后从事J2ME软件开发打下基础。最后感谢我的苏老师对于本门课程的教授与指导,使我们在这段时间受益匪浅。七、程序源代码1.Map.javaimport java.io.IOException;import javax.

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1