移动平台游戏软件开发课程设计说明书.docx

上传人:b****8 文档编号:29764303 上传时间:2023-07-26 格式:DOCX 页数:21 大小:160.64KB
下载 相关 举报
移动平台游戏软件开发课程设计说明书.docx_第1页
第1页 / 共21页
移动平台游戏软件开发课程设计说明书.docx_第2页
第2页 / 共21页
移动平台游戏软件开发课程设计说明书.docx_第3页
第3页 / 共21页
移动平台游戏软件开发课程设计说明书.docx_第4页
第4页 / 共21页
移动平台游戏软件开发课程设计说明书.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

移动平台游戏软件开发课程设计说明书.docx

《移动平台游戏软件开发课程设计说明书.docx》由会员分享,可在线阅读,更多相关《移动平台游戏软件开发课程设计说明书.docx(21页珍藏版)》请在冰豆网上搜索。

移动平台游戏软件开发课程设计说明书.docx

移动平台游戏软件开发课程设计说明书

长沙学院

 

课程设计说明书

题目

洪山战机

系(部)

计算机科学与技术系

专业(班级)

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.在项目开发前应该有一个完整的开发方案,开发人员必须对所做的项目有一定的了解,即知道要做什么以及如何去做。

注:

合同范本有风险,使用需谨慎,法律是经验性极强的领域,范本无法思考和涵盖全面,最好找专业律师起草或审核后使用,谢谢您的关注!

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

当前位置:首页 > 经管营销 > 经济市场

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

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