移动平台游戏软件开发课程设计说明书_第1页
移动平台游戏软件开发课程设计说明书_第2页
移动平台游戏软件开发课程设计说明书_第3页
移动平台游戏软件开发课程设计说明书_第4页
移动平台游戏软件开发课程设计说明书_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

1、.项目开发实训移动平台游戏软件开发长 沙 学 院课程设计说明书题目洪山战机系(部)计算机科学与技术系专业(班级)XXXXXX姓名XXXXX学号XXXXXX指导教师XXXXXXX起止日期2012.12.3-2012.12.30课程设计任务书课程名称:综合实训设计题目:移动平台游戏软件开发已知技术参数和设计要求:1 实训目的要求通过本实训,应能够对J2me移动开发平台有详尽的了解,并能够使用该平台灵活自如的开发Kjava平台手机游戏项目。1)了解手机游戏发展与盈利模式及J2me平台的简史和功能特性。2)掌握MIDlet套件的框架结构及MIDlet的生命周期。3)掌握低级用户界面开发的核心类库各类的

2、使用。4) 掌握低级按键事件的使用。5)掌握各类型游戏的功能特点实现技巧。6) 掌握使用MMAPI来实现多媒体文件的播放。7)掌握实用RMS体系来实现游戏软件的记录存储功能。2 问题描述(功能要求):本次案例将完成一个基于J2ME平台的手机游戏软件。(1) 游戏菜单选项的实现,并实现每个选项下一级功能。(2) 游戏主流程及逻辑的实现。(3) 游戏关卡实现。(4) 游戏音乐的实现。(5) 游戏按键的实现。(6) 游戏UI界面的实现。(7) 游戏场景的实现。(8) 游戏精灵的实现。(9) 游戏记录存储的实现。(10) 游戏得分的实现。3 环境要求:1) 开发环境要求Eclipse+ SonyEri

3、csson Sdk+EclipseMe2) 实际运行环境支持KJAVA的所有手机。设计工作量:80课时工作计划:(1) 2010级软件工程所有班级26课时: 理论、设计。(普通教室)50课时: 上机、调试。(计算机系机房)4课时:答辩。计算机系机房。(具体时间地点老师先申请,机动安排)指导教师签名:日期:教研室主任签名: 日期:系主任签名: 日期:长沙学院课程设计鉴定表姓名XXXX学号XXXXX专业软件工程班级XXXXX设计题目洪山战机指导教师XXXXXXXX指导教师意见:评定等级: 教师签名: 日期: 答辩小组意见:评定等级:答辩小组长签名:日期:教研室意见:教研室主任签名: 日期: 系(部

4、)意见:系主任签名:日期:说明课程设计成绩分“优秀”、“良好”、“及格”、“不及格”四类;目 录1引言11.1 编写目的11.2 项目背景11.3名词解释11.4参考资料12需求规约22.1 业务描述22.2 功能需求22.3性能需求23 总体设计33.1 框架设计33.2 模块划分44.详细设计54.1 模块设计要求54.2 模块详细设计54.2.1 游戏模块设计54.2.2 菜单模块设计125 功能测试155.1游戏功能测试155.2设置功能测试156 总结17;171引言1.1 编写目的在完成了软件系统的需求分析和用例描述的基础上,为了明确软件需求、安排项目规划与进度、组织软件开发与测试

5、,项目小组各组员在考虑了几种可能的解决方案,并在组内进行了较为深入地探讨和分析之后,提出了这份概要设计说明书。此文档对洪山战机项目的解决方案、功能分配、模块化分、程序的总体结构、输入输出和接口设计、运行设计及出错设计等方面作了全面的概括性的说明,为该软件的详细设计奠定了基础。此文档为本次实训工作的阶段性总结,并为指导老师、设计人员和开发人员、维护人员提供参考。1.2 项目背景1、软件名称:洪山战机2、项目任务提出者:长沙大学计算机科学与技术系3、开发者:长沙大学计算机科学与技术系软件B班“洪山”项目组4、使用者:系统管理人员、系统测试人员、系统维护人员5、维护机构:长沙大学计算机科学与技术系软

6、件B班“洪山”项目组6、开发工具:Java1.3名词解释int 整形数据 char 字符型数据1.4参考资料1 刘葵等编,J2ME手机游戏开发技术。2 刘葵等编,手机游戏JAVA语言基础。2需求规约2.1 业务描述洪山战机游戏是一款平面2D射击类游戏,玩家通过操控一个战机进行游戏,本游戏DEMO版本共设计3个关卡,玩家需要通关前一个关卡后才可激活下一个关卡并进行游戏,本游戏主要的玩点在于玩家控制战机灵活躲避敌人战机的攻击,并对敌方进行不停攻击,直到击败最终的BOSS获得胜利!在游戏过程中玩家需要注意敌方子弹,一旦子弹打击到自身战机,战机则会阵亡,如果有如果没有备用生命,游戏将结束.玩家在游戏过

7、程中特别需注意,自身战机具备可消耗的雷,当释放雷时,屏幕中的子弹将消失,并且屏幕中所有的敌方战绩将全部扣除一定血亮,玩家可通过拾取道具补充雷数量并且在保证自身存活的前提下,玩家需要通过拾取异化雷来提升自身战机的战斗力。2.2 功能需求(1)游戏滚屏功能;(2)游戏退出与暂停功能;(3)主角与敌机攻击;(4)最大BOSS机的技能攻击;(5)主角移动2.3性能需求游戏可玩性高;不存在BUG;游戏画面清晰,流畅,操作通俗易懂;关卡分明,每一关的游戏难度都增加,能让玩家的好奇性于挑战心态得到发挥;玩家可以自行选择游戏难易程度,使玩家能跟快速的学会游戏并挑战更高难度的游戏模式,增加游戏的可玩性于挑战性。

8、3 总体设计3.1 框架设计游戏框架如图3.1所示,用户通过菜单界面进行选择。 运行游戏进入菜单选项游戏最高纪录游戏开始帮助退出游戏设置进入游戏图 3.1游戏框架 3.2 模块划分游戏开始时的菜单:游戏开始最高记录游戏设置退出帮助游戏设置的菜单:背景音效(打开、关闭)游戏中的菜单:游戏继续是否保存游戏返回主菜单游戏通关菜单下一关返回主菜单游戏失败菜单继续游戏返回主菜单4.详细设计4.1 模块设计要求(1)开始游戏控制玩家移动、控制玩家射击、敌机移动、敌机发射子弹、显示得分、显示玩家生命值、释放技能。(2)设置设置背景音乐的开、关。(3)帮助包括游戏的介绍、操作规则的说明。(4)排行榜4.2 模

9、块详细设计4.2.1 游戏模块设计包括游戏中玩家射击敌机,玩家的移动。敌机的移动以及发射子弹射击玩家。另外,还的显示当前玩家的得分情况以及生命值。除此之外,还得通过随机释放技能点。让玩家适当的改变自身的技能属性。如,增加生命力、子弹威力等。图4.1 游戏中画面玩家部分结构原始模型与代码如下:运动设计:Plane原型与测试MidletPlane.classimport javax.microedition.lcdui.Graphics;import javax.microedition.lcdui.Image;public class Plane extends Sprite/* * 前进 */

10、 static int UP=1;/* * 后退 */ static int DOWN=2;/* * 左边 */ static int LEFT=3; /* * 右边 */ static private int RIGHT=4;/private int x,y; /角色的位置/private int mw,mh;/角色的宽高/private Image img; /角色所在的大图private int frameIndex;/当前帧private int frameNum;/总帧数/* * 此对象被创建后会得到总帧数frameNum * param img 大图对象 * param mw 角色

11、的宽 * param mh 角色的高 */Plane(Image img,int mw,int mh)super(img, mw, mh);this.frameNum=img.getWidth()/mw;System.out.println("帧总数"+frameNum);public int getFrameIndex() return frameIndex;public void setFrameIndex(int frameIndex) this.frameIndex = frameIndex;public int getFrameNum() return frame

12、Num;public void setFrameNum(int frameNum) this.frameNum = frameNum;/* * 得到用户按键的方向,做出事件响应 * param direction 方向 */public void nextFrame(int direction) if(direction=UP) frameIndex=frameNum/2; if(direction=DOWN) frameIndex=frameNum/2; if(direction=LEFT) if(frameIndex=0) return; frameIndex-; if(direction

13、=RIGHT) if(frameIndex=frameNum-1) return; frameIndex+; public void setPosition(int x,int y)this.x=x;this.y=y;public void planeDraw(Graphics g)int tempx=frameIndex*this.getW();System.out.println(tempx);Tools.drawClipImage(g, img, x, y, tempx, 0, this.getW(), this.getH(),TestCanvas.w,TestCanvas.h);pub

14、lic void move(int dx,int dy)x+=dx;y+=dy;public void updatePlane()if(TestMidlet.tc.isup&&this.getY()>0)nextFrame(UP);move(0,-4);else if(TestMidlet.tc.isdown&&this.getY()<TestCanvas.h-this.getH()nextFrame(DOWN);move(0,4);else if(TestMidlet.tc.isleft&&this.getX()>0)next

15、Frame(LEFT);move(-4,0);else if(TestMidlet.tc.isright&&this.getX()<TestCanvas.w-this.getW()nextFrame(RIGHT);move(4,0); /Tools.classimport javax.microedition.lcdui.Graphics;import javax.microedition.lcdui.Image;/* * 当前工具类里面有二个方法 * 1,通过url的得到图片对象 * 2,对图片对象进行clip,画出大图里面的局部小图 * 3,方法定义都为static静

16、态类型 * author YI */public class Tools /* * * param g 画刷对象 * param img 图片对象 * param x 大图的x坐标 * param y 大图的y坐标 * param mx 小图在大图里面的相对x坐标 * param my 小图在大图里面的相对y坐标 * param mw 小图的宽 * param mh 小图的高 * param w 屏幕的宽 * param h 屏幕的高 */public static void drawClipImage(Graphics g,Image img,int x, int y ,int mx,int

17、 my,int mw,int mh,int w,int h)g.setClip(x, y, mw, mh);/画以(x,y)坐标为外接矩形起始点,截取显示区域为宽:mw,高:mhg.drawImage(img, x-mx, y-my, 0);/画出对应位置上的小图g.setClip(0, 0, w, h);/还原/* * * param urlName 图片的相对路径 * return */public static Image getImage(String urlName)Image img=null;tryimg=Image.createImage(urlName);/通过路径创建图片对

18、象catch(Exception ex)ex.printStackTrace();return img;4.2.2 菜单模块设计包括排行榜、设置、帮助、退出的设计。主要有设置背景音乐的开与关,帮助中展示游戏的简介及操作方法。排行榜展示得分及排名。图4.4 设置界面图关键代码如下:/* * 绘制菜单 * param g */public void drawMenu(Graphics g)clearScreen(g);/刷屏g.drawImage(img3, w/2, h/2, Graphics.VCENTER|Graphics.HCENTER);g.drawImage(img4, 20, 55+

19、pointIndex*27, 0);/* * 设置界面 * param g */public void drawSet(Graphics g)clearScreen(g);/刷屏g.drawImage(img6, w/2, h/2, Graphics.HCENTER|Graphics.VCENTER);g.drawImage(img4, 40, 75+pointIndexSet*50, 0);g.drawString("返回",w,h,Graphics.BOTTOM|Graphics.RIGHT);/* * 刷屏 * param g */public void clearS

20、creen(Graphics g)g.setColor(0xffffff);g.fillRect(0, 0, w, h);g.setColor(0x000000);public void keyPressed(int key)switch(key)case -1:/上键if(menuState=MENU&pointIndex>0)pointIndex-;if(menuState=SET&pointIndexSet>0)pointIndexSet-;break;case -2:/向下键if(menuState=MENU&pointIndex<5)pointIndex+;if(menuState=SET&pointIndexSet<1)pointIndexSet+;break;case -7:/右键if(menuState

温馨提示

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

评论

0/150

提交评论