详细设计说明
3.2 模块的类设计
3.2.1 Logo模块
Logo模块包括的类有: Team.java: Logo1-标志类 Poem.java: Logo2-长征诗类
Open.java: Logo3-主角过场类
3.2.2 功能模块
功能模块包括的类有: Menu.java: 主菜单类 Music.java:背景音乐类 RMS.java:存储功能类
手机游戏开发—《长征》
详细设计说 明
软件工程专修学院
团队名称:智我团队 所属学校:山东海天 Nhomakorabea团队成员:李运强、邹乐华、路丛
磊、刘鸿媛、宋慧
指导老师:岳茂顺
目录
第一章 引言 1.1 编写目的 1.2 背景 1.3 定义 1.4 参考资料
第二章 程序系统的结构设计 2.1 模块划分 2.2 结构划分 2.3 类划分及其关系 2.3.1 软件主要类及功能 2.4 流程设计
我们使用collidesWith(TiledLayer t, boolean pixelLevel) 方法来检
测精灵间的冲突(即碰撞)。当主角与子弹精灵间发生冲突时,将以用
户各项值改变的形式告知用户。
4.3 敌人智能算法
首先定义敌人的攻击矩形区域,这里可以把敌人分为面对主角时发
射子
弹和敌人背对主角时发射子弹,当敌人直接面对主角时(主角的X坐
第三章 程序系统的模块设计 3.1 模块功能 3.1.1 界面模块 3.1.2 功能模块 3.1.3 游戏主体模块 3.2 模块的类设计
3.2.1 Logo模块 3.2.2 功能模块 3.2.3 游戏主体模块 3.3 模块的流程
第四章 程序系统中的算法
4.1 主角移动的控制 4.2 碰撞检测 4.3 敌人智能算法 4.4 子弹智能跟踪算法 4.5 地图的生成 4.5 精灵随机位置的产生 4.6 输入项 4.7 输出项 4.8 流程逻辑 4.9 接口设计
Profile: 中文意思是简表,它是在Configuration之上的规范。简 表针对不同机器的特性定义了高级的API(应用程序接 口)。 MIDP: 全称是Mobile Information Device Profile。它是针对移动 设备定义的Profile。 MIDlet: MIDlet是在MIDP中定义的一种应用程序框架,它是被应 用管理软件(AMS)管理的。MIDlet是在支持MIDP规范的移 动信息设备上运行的应用程序,MIDlet不是一个单独的 文件,而是一个文件的集合,它除了必须包含一个继承 自javax.microedition.midlet.MIDlet的类之外,还包 括此类执行时间所需的其他类和资源文件(只要是非 class文件都成为资源文件)。
3.1.2 功能模块
功能模块实现游戏中的基本功能,包括背景音乐的播放及开关的控 制
3.1.3 游戏主体模块
游戏主体模块也是游戏的主体部分,控制游戏的进展情况。实现游
戏的各个关卡以及相邻关卡的连接。游戏主体模块的运行完全按照程序 流程来进行,每一步都必须保证程序的运行无误。在游戏主体模块中还 要对程序中的数据进行加工处理,与程序相关的数据包括用户在运行此 游戏时的战斗力,生命值的存储。 战斗力,生命值,当生命值为零的情况下游戏结束,在程序中战斗 力会随着游戏的进展情况发生变化,时而增加时而减少并不确定,系统 会根据战斗力的不同来判断主角发射的子弹。而生命值只会减少不会增 加,只有主角打掉每关卡的BOSS,则进入下一关,直到三关全部通过。
if(Math.abs(spRole.getX()spEnemy[enIndex].getX())<80&&Math.abs(spRole.getY()spEnemy[enIndex].getY())<20)
{ continue;
} } if(enemyTurn[enIndex]&&enemyLeft[enIndex])//enemy向 左转身 {
2) 继续游戏:如果玩家在某种原因之下需要暂停游戏去忙其他事 情,我们设计了RMS存盘功能,游戏玩家可以随时暂停游戏保存下来, 下次打开游戏只需选择继续,就可以返回之前的动画。
3) 游戏设置:设置游戏的背景音乐开关,在J2ME中,处理音效需 要使用MMAPI的包。播放音效文件首先按照一定的格式读取音效文件并 将读取的内容传递给播放器,通过Player类中的setLoopCount方法设置 播放次数在此游戏中设置为循环播放,在经过player.start()播放音 乐。在声音大小的控制上通过定义changeVolume方法实现,游戏帮助:
1.4 参考资料
编号 1 2
书籍名 J2ME教程 手机游戏开发全书
主编 郭克华 李晓洁 王晓龙 马瑞
出版社 网上下载 清华大学出版社
第二章 程序系统的结构设计
2.1 模块划分
根据此游戏系统的具体功能将其划分为三个模块,主要包括:界
面模块,功能模块,游戏主体模块。这三个模块分工协作构成整个游戏 程序系统,完成系统的所有功能。
4.9.1 用户接口 4.10 游戏运行限制条件
4.11尚未解决的问题
第一章 引言 1.1 编写目的
编写详细设计说明书是软件开发过程中必不可少的部分,其目的是 为了使开发人员在完成概要设计说明书的基础上,完成概要设计规定的 各项功能的具体实现。经过这个阶段的设计工作,应该得出对目标系统 的精确描述,从而在编码阶段可以把这个描述直接翻译成用某种程序设 计语言书写的程序。详细设计的结果基本上决定了最终程序代码的质 量。详细设计的目标不仅仅是在逻辑上正确地实现每个模块的功能,更 重要的是设计出的处理过程应该尽可能简明易懂。详细设计是在确定功 能结构图的同时,进一步确定每一个模块的具体实现方法、设计系统的 物理模型等。 编写详细设计说明书的目的就是为程序员写出实际的程序代码提供 依据。它是软件详细设计阶段所有任务和所有相关人员(包括项目管理 人员、软件设计人员、软件测试人员、文档编制人员和质量审核人 员),所需要的参考资料。 详细设计是在确定功能结构图的同时,进一步确定每一模块的具体 实现方法、设计系统的物理模型等。 预期读者:项目管理人员、软件测试人员、文档编制人员、专家顾 问人员。
4.2 碰撞检测
根据游戏设定,敌方精灵不能与主角重合,则敌人每走一步都需要 检测一下主角是否在敌人的射击范围之内,如果在敌人的射击范围之内
则发射子弹射击主角。Sprite类中提供了collidesWith函数和
defineCollisionRectangle函数,
用于判断是否与某个Sprite、
TiledLayer、Image的对象有图像上的重合(即游戏中的碰撞)。在程序中
spEnemy[enIndex].setFrameSequence(enemyLframe); enemyTurn[enIndex]=false; spEnemy[enIndex].move(-7,0); } if(enemyTurn[enIndex]&&!enemyLeft[enIndex])//enemy 向右转身 { spEnemy[enIndex].setFrameSequence(enemyRframe); enemyTurn[enIndex]=false; spEnemy[enIndex].move(10,0); } if(!enemyTurn[enIndex]&&enemyLeft[enIndex])//enemy 向左行走 { spEnemy[enIndex].move(-3,0); spEnemy[enIndex].nextFrame(); if(!spEnemy[enIndex].collidesWith(tlOther,true)) {
进入游戏帮助界面,显示游戏的玩法规则。 4) 游戏帮助:这里是说明怎么实现按键的控制,上下左右以及各
种功能按键的实现。 5) 关于游戏:这里是说明开发团队的信息,游戏名称以及游戏的
版本。 6) 退出游戏:退出整个游戏。
基本结构图如下:
开始长征
游戏玩家
选项 关于
帮助 继续 退出游戏
2.3 类划分及其关系
模块流程图如下:
开始长征 继续 选项 帮助 关于
欢迎屏幕
Logo-team Logo-Poem Logo-open
主菜单
退出游戏
Y Y Y N N N
开始游戏
第一关
游戏通过
第二关
游戏通过
第三关
游戏通过
通关画面 失败画面
第四章 程序系统中的算法
4.1 主角移动的控制
GameCanvas提供的getKeyStates函数可获取当前键盘上的信 息,并将获得的信息以位的形式返回用户所按键的状态。 LEFT_PRESSED,RIGHT_PRESSED,UP_PRESSED,DOWN_PRESSED,FIRE_PRESSED ,3键,分别对应左右上下ENTER键和数字3键,程序通过游戏玩家按下 的不同按键来判断主角的移动,上跳和射击,投掷手雷。
撞检测来改变主角发射子弹的战斗力,,程序中还对主角的战斗力和生
命值作出判断,当生命值为零时游戏结束。
程序流程图如下:
开始长征 继续 选项 帮助 关于 退出游戏
Y Y Y N N N
欢迎屏幕
Logo-team Logo-Poem Logo-open
主菜单
开始游戏
第一关
游戏通过
第二关
游戏通过
第三关
游戏通过
2.3.1 软件主要类及功能
Team.java: Logo1-标志类 Poem.java: Logo2-长征诗类 Open.java: Logo3-主角过场类
Menu.java: 主菜单类 Music.java:背景音乐类
RMS.java:存储功能类 LongMarchMIDlet.java:程序入口类