SEProject-SDD

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

清华大学Survivor软件设计说明Version1.0SoftwareDesignDescriptions版本:软件设计说明日期:SECourse_SDD.docConfidentialTsinghuaUniversity,2006Page1RevisionDateVersionDescriptionAuthor2007-5-170.1初步设计文档廖洪申、林雁彬2007-5-180.5小组初步评议后的设计文档第四小组全体成员2007-6-151.0初步完善的设计文档第四小组全体成员SoftwareDesignDescriptions版本:软件设计说明日期:SECourse_SDD.docConfidentialTsinghuaUniversity,2006Page2目录1.引言11.1目的11.2范围11.3定义和缩写12.参考文献13.分解说明23.1模块分解23.2数据分解54.依赖关系说明64.1模块间的依赖关系65.接口说明65.1模块接口66.详细设计76.1模块详细设计76.2数据详细设计31SoftwareDesignDescriptions版本:软件设计说明日期:SECourse_SDD.docConfidentialTsinghuaUniversity,2006Page11.引言本文档是在Survivor游戏软件规格说明SEProject_SRS文档的基础上对Survivor游戏所作的软件设计说明。具体内容包括系统的总体组织结构、模块分解、模块间的依赖关系、接口说明和详细设计等。1.1目的本文档的读者对象是Survivor游戏的所有开发人员、测试人员、系统维护人员等。本文档的主要目的是清楚地描述系统的设计思路和体系架构,为开发人员进行代码的详细开发提供标准和依据。同时,本文档对系统的模块进行了详细的划分并定义了相互之间的接口,利于开发人员进行并行开发。测试人员可以根据本文档的模块划分对软件进行详细的单元和模块测试。同时,本文档为未来可能的对系统的维护和升级提供技术参考。1.2范围我们要开发的游戏名为Survivor,是一款角色扮演类的视频游戏。1.0的版本将只支持人机对战,玩家和电脑分别控制一个人物。玩家和电脑均具有5项属性,并且可以重新分配这5项属性的值。玩家和电脑在一个由多个房间构成的场景里活动,每个房间均具有各自的属性。玩家和电脑均可在各个房间活动,并且在相遇时玩家人物选择战斗,双方的强弱由双方所在房间属性决定。战斗后负者须向胜者转移属性,总属性最先为0的一方失败。在扩展版本里,可能将实现网络对战的功能,并有可能开发基于3D的视频游戏。为了增加游戏的可玩性,有可能会在游戏中增加“宝物”等设计。1.3定义和缩写缩写定义SRSSoftwareRequirementSpecificationSDDSoftwareDesignDescriptionsIEEEInstituteofElectricalandElectronicsEngineersHP人物生命值,即人物自身所有属性的总和2.参考文献[1]视频游戏Survivor问题描述1.0,刘强、卢凯。[2]面向对象技术UML教程,王少锋,2004年清华大学出版社。SoftwareDesignDescriptions版本:软件设计说明日期:SECourse_SDD.docConfidentialTsinghuaUniversity,2006Page2[3]软件需求规格说明,第四小组。3.分解说明本软件采用“模型/视图/控制器”的结构作为系统结构。在玩家进行游戏的过程中,系统要显示多个房间和场景,游戏界面的显示是程序很重要的一个模块。而对玩家移动、战斗、属性分配等的逻辑控制也并不十分简单,需要一些专门的游戏控制器来控制游戏的状态。视图和控制器都是基于具体的人物属性、位置等实体数据来进行的,这些数据是程序的基础,组成了程序的实体数据模块。这样,系统分为实体数据模块、界面显示模块以及控制模块等。其中,实体数据模块对应的包是Role。界面显示模块对应的包是Scene。控制模块对应的包是Control。另外,为了提高系统一些常用类的可重用性,我们将这些被重复利用的基础类统一放在Utility包下,供其他包共同调用。为了对外提供统一的接口,尽量降低系统各个模块之间的耦合度,增加包的内聚程度,我们在Role、Scene等包内分别添加了统一提供对外控制接口的类,外部的类只需调用包内的控制接口类即可实现对包内的类的统一调用。3.1模块分解3.1.1实体数据模块实体数据模块对应的包是Role。它所包含的类如表2所示:表2Role包包功能描述类名类功能描述Role包:完成游戏人物的数据控制包括属性配置,当前状态等。RoleCommon人物部分基本数据定义BaseRole人物基类定义人物的基本特征和方法UserRole玩家人物ForeignRole外部人物RoleManage人物管理接口Role包的类之间的关系如图1所示:SoftwareDesignDescriptions版本:软件设计说明日期:SECourse_SDD.docConfidentialTsinghuaUniversity,2006Page3图1Role包的内部关系3.1.2界面显示模块界面显示模块对应的包是Scene。它所包含的类如表3所示:表3Scene包包功能描述类名类功能描述Scene包:完成界面显示部分,包括初始界面,主界面。主界面中含人物显示和移动部分,房间显示部分,各种面板显示部分。SceneCommon场景基本数据定义人物显示AnimationMeshContainerAllocateHierarchyAnimationFrame人物显示数据加载辅助类AnimationRole人物显示数据加载和渲染Magic人物魔法渲染RoleMoveControl玩家和外部人物移动控制房间显示BaseHouse房间基类House房间数据加载Courtyard院子显示Sky天空渲染,只有在院子里才显示HouseControl游戏房间的加载和显示面板显示MapViewport小地图MessageViewport消息面板,游戏状态信息发布GamePausePanel游戏暂停面板PassageViewport通道信息显示面板BottomViewport底部面板AttrPanelView属性面板显示和部分消息处理AttributePanel属性面板供主窗口和初始化窗口调用MainView主界面控制显示部分InitMenuView初始菜单界面SoftwareDesignDescriptions版本:软件设计说明日期:SECourse_SDD.docConfidentialTsinghuaUniversity,2006Page4InitSetView初始设置界面Scene包的类之间的关系如图3所示:SceneCommonAnimationMeshContainerAllocateHierarchyBaseHouseAnimationFrameAnimationRoleCourtyardHouseHouseControlRoleMoveControlBottomViewportMapViewportGamePausePanelMessageViewPortAttrPanelViewSkyMagicMainSceneControlPassageViewPort图2Scene包的内部关系3.1.3控制模块控制模块对应的包是Control。它所包含的类如表4所示:表4Control包包功能描述类名类功能描述Control包:完成游戏的控制逻辑,接收来自窗口的交互信息实现对人物和显示控制ControlCommon控制部分基本数据Camera摄影类实现三维场景视角调整DeviceManage设备管理器GameState游戏状态机完成游戏状态调整MainFrame主窗口,接收键盘鼠标等交互信息GameManage游戏的控制器,从主窗口接收SoftwareDesignDescriptions版本:软件设计说明日期:SECourse_SDD.docConfidentialTsinghuaUniversity,2006Page5消息控制游戏。Control包的类之间的关系如图4所示:CameraControlCommonGameStateMainFrameDeviceManageGameManager图3Control包的内部关系3.1.4通用模块通用模块被其他模块所共同调用,具体含有如下类:表5Utility包包功能描述类名类功能描述Utility包,被其他系统模块所调用,提供一些较为基础和通用的功能。CMesh加载网格数据Component负责管理组件FrameworkTimer时间管理D2DStretchSprite可变精灵显示D2DStaticSprite静态精灵显示D2DSprite精灵TextHelper提供通用的显示文字的接口DirectKeyboardInput处理键盘输入Music播放音乐EnergyBar属性条,显示玩家属性TreasureSystem宝物系统3.2数据分解系统中所使用的数据,如表6所示:表6数据分解SoftwareDesignDescriptions版本:软件设计说明日期:SECourse_SDD.docConfidentialTsinghuaUniversity,2006Page6数据功能描述人物,房间的数据包括网格及其它纹理贴图人物显示,房间显示和渲染音乐按照所处房间和场景提供适宜的背景音乐和提示音乐等。3.2.1数据说明人物房间,多媒体的数据存储形式为直接用图片,.x格式,.wav存储,保存在程序目录下的文件夹media和music中。4.依赖关系说明4.1模块间的依赖关系SceneRoleControlUtility图4模块依赖关系5.接口说明5.1模块接口5.1.1实体数据模块接口功能主要由RoleManage类完成。由控制部分调用,接口如表7所示:表7实体数据模块对外接口实现类接口函数功能描述SoftwareDesignDescriptions版本:软件设计说明日期:SECourse_SDD.docConfidentialTsinghuaUniversity,2006Page7RoleManageInitilizeRole根据游戏状态初始化人物SetAttribute调整人物属性GetActiveRole获取当前活动人物及其信息UpdateInfo更新人物信息5.1.2界面显示模块接口功能主要由三个类提供。表8界面显示模块对外接口实现类接口函数功能描述InitMenuViewInit初始化菜单界面ClickMenu检测响应Render渲染界面InitSetViewInit初始化设置界面ClickMenu检测响应Render渲染界面MainViewInitMainView初始化主界面RenderMainView渲染主界面ShowPausePanel显示暂停面板ShowAttributePanel显示属性面板ClickMenu检测响应并处理5.1.3控制模块控制模块的功能实现需要调用Scene的接口和Role的接口,控制模块根据用户的输入进行响应,修改Role的信息并且同步调整Scene中的渲染显示。它处于游戏最高层,不对其他模块提供调用接口。6.详细设计6.1模块详细设计6.1.1数据模块详细设计类RoleCommonSoftwareDesignDescriptions版本:软件设计说明日期:SECourse_SDD.docConfidentialTsinghuaUniversity,2006Page8AttributeName:存储五种属性的命名AttributeValue:属性总值DifficultyName:难度命名UserRoleInitHoueID:玩家初始房间ComputerRoleInitHouseID:外部人物初始房间类BaseRolea

1 / 34
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功