移动平台游戏软件开发课程设计说明书.docx
- 文档编号:29764303
- 上传时间:2023-07-26
- 格式:DOCX
- 页数:21
- 大小:160.64KB
移动平台游戏软件开发课程设计说明书.docx
《移动平台游戏软件开发课程设计说明书.docx》由会员分享,可在线阅读,更多相关《移动平台游戏软件开发课程设计说明书.docx(21页珍藏版)》请在冰豆网上搜索。
移动平台游戏软件开发课程设计说明书
长沙学院
课程设计说明书
题目
洪山战机
系(部)
计算机科学与技术系
专业(班级)
XXXXXX
姓名
XXXXX
学号
XXXXXX
指导教师
XXXXXXX
起止日期
2012.12.3-2012.12.30
课程设计任务书
课程名称:
综合实训
设计题目:
移动平台游戏软件开发
已知技术参数和设计要求:
1.实训目的要求
通过本实训,应能够对J2me移动开发平台有详尽的了解,并能够使用该平台灵活自如的开发Kjava平台手机游戏项目。
1)了解手机游戏发展与盈利模式及J2me平台的简史和功能特性。
2)掌握MIDlet套件的框架结构及MIDlet的生命周期。
3)掌握低级用户界面开发的核心类库各类的使用。
4)掌握低级按键事件的使用。
5)掌握各类型游戏的功能特点实现技巧。
6)掌握使用MMAPI来实现多媒体文件的播放。
7)掌握实用RMS体系来实现游戏软件的记录存储功能。
2.问题描述(功能要求):
本次案例将完成一个基于J2ME平台的手机游戏软件。
(1)游戏菜单选项的实现,并实现每个选项下一级功能。
(2)游戏主流程及逻辑的实现。
(3)游戏关卡实现。
(4)游戏音乐的实现。
(5)游戏按键的实现。
(6)游戏UI界面的实现。
(7)游戏场景的实现。
(8)游戏精灵的实现。
(9)游戏记录存储的实现。
(10)游戏得分的实现。
3.环境要求:
1)开发环境要求
Eclipse+SonyEricssonSdk+EclipseMe
2)实际运行环境
支持KJAVA的所有手机。
设计工作量:
80课时
工作计划:
(1)2010级软件工程所有班级
26课时:
理论、设计。
(普通教室)
50课时:
上机、调试。
(计算机系机房)
4课时:
答辩。
计算机系机房。
(具体时间地点老师先申请,机动安排)
指导教师签名:
日期:
教研室主任签名:
日期:
系主任签名:
日期:
长沙学院课程设计鉴定表
姓名
XXXX
学号
XXXXX
专业
软件工程
班级
XXXXX
设计题目
洪山战机
指导教师
XXXXXXXX
指导教师意见:
评定等级:
教师签名:
日期:
答辩小组意见:
评定等级:
答辩小组长签名:
日期:
教研室意见:
教研室主任签名:
日期:
系(部)意见:
系主任签名:
日期:
说明
课程设计成绩分“优秀”、“良好”、“及格”、“不及格”四类;
1引言
1.1编写目的
在完成了软件系统的需求分析和用例描述的基础上,为了明确软件需求、安排项目规划与进度、组织软件开发与测试,项目小组各组员在考虑了几种可能的解决方案,并在组内进行了较为深入地探讨和分析之后,提出了这份概要设计说明书。
此文档对《洪山战机》项目的解决方案、功能分配、模块化分、程序的总体结构、输入输出和接口设计、运行设计及出错设计等方面作了全面的概括性的说明,为该软件的详细设计奠定了基础。
此文档为本次实训工作的阶段性总结,并为指导老师、设计人员和开发人员、维护人员提供参考。
1.2项目背景
1、软件名称:
洪山战机
2、项目任务提出者:
长沙大学计算机科学与技术系
3、开发者:
长沙大学计算机科学与技术系软件B班“洪山”项目组
4、使用者:
系统管理人员、系统测试人员、系统维护人员
5、维护机构:
长沙大学计算机科学与技术系软件B班“洪山”项目组
6、开发工具:
Java
1.3名词解释
int整形数据
char字符型数据
1.4参考资料
[1]刘葵等编,J2ME手机游戏开发技术。
[2]刘葵等编,手机游戏JAVA语言基础。
2需求规约
2.1业务描述
《洪山战机游戏》是一款平面2D射击类游戏,玩家通过操控一个战机进行游戏,本游戏DEMO版本共设计3个关卡,玩家需要通关前一个关卡后才可激活下一个关卡并进行游戏,本游戏主要的玩点在于玩家控制战机灵活躲避敌人战机的攻击,并对敌方进行不停攻击,直到击败最终的BOSS获得胜利!
在游戏过程中玩家需要注意敌方子弹,一旦子弹打击到自身战机,战机则会阵亡,如果有如果没有备用生命,游戏将结束.玩家在游戏过程中特别需注意,自身战机具备可消耗的雷,当释放雷时,屏幕中的子弹将消失,并且屏幕中所有的敌方战绩将全部扣除一定血亮,玩家可通过拾取道具补充雷数量并且在保证自身存活的前提下,玩家需要通过拾取异化雷来提升自身战机的战斗力。
2.2功能需求
(1)游戏滚屏功能;
(2)游戏退出与暂停功能;
(3)主角与敌机攻击;
(4)最大BOSS机的技能攻击;
(5)主角移动
2.3性能需求
游戏可玩性高;不存在BUG;游戏画面清晰,流畅,操作通俗易懂;关卡分明,每一关的游戏难度都增加,能让玩家的好奇性于挑战心态得到发挥;玩家可以自行选择游戏难易程度,使玩家能跟快速的学会游戏并挑战更高难度的游戏模式,增加游戏的可玩性于挑战性。
3总体设计
3.1框架设计
游戏框架如图3.1所示,用户通过菜单界面进行选择。
图3.1游戏框架
3.2模块划分
游戏开始时的菜单:
游戏开始
最高记录
游戏设置
退出
帮助
游戏设置的菜单:
背景音效(打开、关闭)
游戏中的菜单:
游戏继续
是否保存游戏
返回主菜单
游戏通关菜单
下一关
返回主菜单
游戏失败菜单
继续游戏
返回主菜单
4.详细设计
4.1模块设计要求
(1)开始游戏
控制玩家移动、控制玩家射击、敌机移动、敌机发射子弹、显示得分、显示玩家生命值、释放技能。
(2)设置
设置背景音乐的开、关。
(3)帮助
包括游戏的介绍、操作规则的说明。
(4)排行榜
4.2模块详细设计
4.2.1游戏模块设计
包括游戏中玩家射击敌机,玩家的移动。
敌机的移动以及发射子弹射击玩家。
另外,还的显示当前玩家的得分情况以及生命值。
除此之外,还得通过随机释放技能点。
让玩家适当的改变自身的技能属性。
如,增加生命力、子弹威力等。
图4.1游戏中画面
玩家部分结构[原始模型]与代码如下:
运动设计:
Plane原型与测试Midlet
Plane.class
importjavax.microedition.lcdui.Graphics;
importjavax.microedition.lcdui.Image;
publicclassPlaneextendsSprite{
/**
*前进
*/
staticintUP=1;
/**
*后退
*/
staticintDOWN=2;
/**
*左边
*/
staticintLEFT=3;
/**
*右边
*/
staticprivateintRIGHT=4;
//privateintx,y;//角色的位置
//privateintmw,mh;//角色的宽高
//privateImageimg;//角色所在的大图
privateintframeIndex;//当前帧
privateintframeNum;//总帧数
/**
*此对象被创建后会得到总帧数frameNum
*@paramimg大图对象
*@parammw角色的宽
*@parammh角色的高
*/
Plane(Imageimg,intmw,intmh){
super(img,mw,mh);
this.frameNum=img.getWidth()/mw;
System.out.println("帧总数"+frameNum);
}
publicintgetFrameIndex(){
returnframeIndex;
}
publicvoidsetFrameIndex(intframeIndex){
this.frameIndex=frameIndex;
}
publicintgetFrameNum(){
returnframeNum;
}
publicvoidsetFrameNum(intframeNum){
this.frameNum=frameNum;
}
/**
*得到用户按键的方向,做出事件响应
*@paramdirection方向
*/
publicvoidnextFrame(intdirection)
{
if(direction==UP){
frameIndex=frameNum/2;
}
if(direction==DOWN){
frameIndex=frameNum/2;
}
if(direction==LEFT){
if(frameIndex==0)return;
frameIndex--;
}
if(direction==RIGHT){
if(frameIndex==frameNum-1)return;
frameIndex++;
}
}
publicvoidsetPosition(intx,inty)
{
this.x=x;
this.y=y;
}
publicvoidplaneDraw(Graphicsg)
{
inttempx=frameIndex*this.getW();
System.out.println(tempx);
Tools.drawClipImage(g,img,x,y,tempx,0,this.getW(),this.getH(),TestCanvas.w,TestCanvas.h);
}
publicvoidmove(intdx,intdy)
{
x+=dx;
y+=dy;
}
publicvoidupdatePlane(){
if(TestMidlet.tc.isup&&this.getY()>0){
nextFrame(UP);
move(0,-4);
}
elseif(TestMidlet.tc.isdown&&this.getY() nextFrame(DOWN); move(0,4); } elseif(TestMidlet.tc.isleft&&this.getX()>0){ nextFrame(LEFT); move(-4,0); } elseif(TestMidlet.tc.isright&&this.getX() nextFrame(RIGHT); move(4,0); } } } //Tools.class importjavax.microedition.lcdui.Graphics; importjavax.microedition.lcdui.Image; /** *当前工具类里面有二个方法 *1,通过url的得到图片对象 *2,对图片对象进行clip,画出大图里面的局部小图 *3,方法定义都为static静态类型 *@authorYI */ publicclassTools{ /** * *@paramg画刷对象 *@paramimg图片对象 *@paramx大图的x坐标 *@paramy大图的y坐标 *@parammx小图在大图里面的相对x坐标 *@parammy小图在大图里面的相对y坐标 *@parammw小图的宽 *@parammh小图的高 *@paramw屏幕的宽 *@paramh屏幕的高 */ publicstaticvoiddrawClipImage(Graphicsg,Imageimg,intx,inty,intmx,intmy,intmw,intmh,intw,inth) { g.setClip(x,y,mw,mh);//画以(x,y)坐标为外接矩形起始点,截取显示区域为宽: mw,高: mh g.drawImage(img,x-mx,y-my,0);//画出对应位置上的小图 g.setClip(0,0,w,h);//还原 } /** * *@paramurlName图片的相对路径 *@return */ publicstaticImagegetImage(StringurlName) { Imageimg=null; try{ img=Image.createImage(urlName);//通过路径创建图片对象 }catch(Exceptionex) { ex.printStackTrace(); } returnimg; } } 4.2.2菜单模块设计 包括排行榜、设置、帮助、退出的设计。 主要有设置背景音乐的开与关,帮助中展示游戏的简介及操作方法。 排行榜展示得分及排名。 图4.4设置界面图 关键代码如下: /** *绘制菜单 *@paramg */ publicvoiddrawMenu(Graphicsg) { clearScreen(g);//刷屏 g.drawImage(img3,w/2,h/2,Graphics.VCENTER|Graphics.HCENTER); g.drawImage(img4,20,55+pointIndex*27,0); } /** *设置界面 *@paramg */ publicvoiddrawSet(Graphicsg) { 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); } /** *刷屏 *@paramg */ publicvoidclearScreen(Graphicsg) { g.setColor(0xffffff); g.fillRect(0,0,w,h); g.setColor(0x000000); } publicvoidkeyPressed(intkey) { 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! =MENU|menuState! =LOGO) menuState=MENU; break; case-5: //中键 if(menuState==SET)//设置音乐 { switch(pointIndexSet) { case0: isMusic=true; break; case1: isMusic=false; break; } } if(menuState==MENU)//菜单选项 { switch(pointIndex) { case0: menuState=GAME; break; case1: //menuState=LOAD; break; case2: //排行榜 //menuState=RANK; break; case3: menuState=SET; break; case4: //menuState=HELP; break; case5: menuState=EXIT; break; } } break; } } 5功能测试 5.1游戏功能测试 【覆盖功能点】玩家的移动及射击 【测试输入】多组测试样例 【测试输出】玩家向上、下、左、右移动及发射子弹。 【测试结论】设置功能测试成功无误,可以执行 【部分截图】 图5.1游戏功能测试 5.2设置功能测试 【覆盖功能点】背景音乐的开与关 【测试输入】多组测试样例 【测试输出】有背景音乐或者没背景音乐 【测试结论】设置功能测试成功无误,可以执行 【部分截图】 图5.1设置功能测试 6总结 1.团队的协调。 在项目开发中此点尤其重要。 2.整个项目开发过程中,小组各个成员应分工明确。 3.在项目开发前应该有一个完整的开发方案,开发人员必须对所做的项目有一定的了解,即知道要做什么以及如何去做。 注: 合同范本有风险,使用需谨慎,法律是经验性极强的领域,范本无法思考和涵盖全面,最好找专业律师起草或审核后使用,谢谢您的关注!
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 移动 平台 游戏软件 开发 课程设计 说明书
![提示](https://static.bdocx.com/images/bang_tan.gif)