超级玛丽JAVA小游戏详细设计文档

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

目录

1.导言 (2)

1.1编写目的 (2)

1.2项目范围 (2)

1.3参考资料 (2)

1.4缩写说明 (2)

1.5术语定义 (2)

2.功能需求 (3)

2.1界面设计技术 (3)

2.2游戏功能划分 (3)

2.3功能划分的架构图 (3)

2.4具体的功能模块 (4)

2.5功能描述 (4)

2.6程序的总体架构 (4)

2.7程序的三层结构图 (4)

3.面向对象设计 (5)

3.1主要类图 (5)

3.2各个模块的方法或类名类表示 (6)

3.3地图绘制中的坐标说明 (6)

4.程序的详细设计 (7)

4.1主要人物玛丽的实现 (7)

4.2核心类 (7)

1.导言

1.1编写目的

该文档的目的是说明超级玛丽游戏的功能和设计方向、目标等描述游戏项目的整体框架的实现。其主要内容包括:游戏项目的功能简介,接口设计,模块设计,界面设计。本文档预期读者包括:项目管理人员,编程人员,数据库设计人员,美工,测试人员。

1.2项目范围

该文档定义了游戏的模块,结构单元,但未确定单元的实现方法,这部分内容将在具体的代码设计中实现。

1.3参考资料

《软件工程案例教程》机械工业出版社韩万江编著

《J2ME手机游戏开发技术详解》清华大学出版社李振鹏龚剑编著

1.4缩写说明

UML:Unified Modeling Language(统一建模语言)的缩写,是一个标准的建模语言。

1.5术语定义

MIDP 2.0 定义:MIDP 2.0 也叫MIDP_NG,它的编号是JSR 118。MIDP2.0 与1.0相比有很大提高,增加的特性包括:提供域安全模型,以允许对应用程序进行签名和论证;提供TCP、UDP网络接口;内置OTA;更好的用户界面;基本的声音API。

2.功能需求

2.1界面设计技术

1)选取和谐Q版的图片,使画面色彩和谐自然,配合动听的音乐渲染游戏气氛

2)采用对话框方式,多功能窗口运行,固定窗口大小便于程序编写,键盘操作

游戏角色。

3)使用低级用户界面,响应低级用户事件,不使用MIDP2.0GameAPI

4)地图数据采用char类型,对每一个地图块的大小为16×16像素,采用单层

地图,以提高游戏的运行速度

5)居于多线程,实现进度条

2.2游戏功能划分

游戏的基本功能应该包括菜单处理,程序逻辑处理,持久性处理和挂起恢复处理。

◆关于菜单的处理,包括可以选择的进入游戏、保存、帮助和音效开关等。

◆程序的逻辑处理就是涵盖了程序中除菜单外几乎所有的功能。

◆持久性处理就是资源的载入和游戏的进度保存。

2.3功能划分的架构图

2.4具体的功能模块

1)游戏控制模块

2)查询记录模块

3)关卡选择模块

4)游戏设置模块

2.5功能描述

玩家打开程序,在游戏菜单页面有四个选项。

◆关卡选择:选择已玩过的关卡进行游戏;

◆开始游戏:从游戏的第一关进行游戏,玩家通过按键控制主人公马里奥进行

不同的操作;

◆查询记录:查询五个最高游戏分数,排名由上往下递减。

◆游戏设置(包括音乐设置和按键设置):玩家可以设置游戏进行时的音乐开

或关以及修改相应的控制键。

2.6程序的总体架构

本程序采用3层程序架构,业务表现层,业务逻辑层和数据持久层。

◆业务表现层。主要是游戏界面的绘制,通过指定的接口绘制,与游戏的逻辑

分离。

◆业务逻辑层。主要是游戏的人物和敌人的动作,碰撞的判断,这个与表现层

无关,需要表示层调用定义好的接口与逻辑层的通信

◆数据持久层。保存游戏中的数据,载入游戏中需要的资源,与程序逻辑层无

关,用XML文档存储数据

2.7程序的三层结构图

3.面向对象设计3.1主要类图

3.2各个模块的方法或类名类表示3.3地图绘制中的坐标说明

4.程序的详细设计

4.1主要人物玛丽的实现

public class MarioMainSprite extends LPSprite

{

public MarioMainSprite(MarioGameManage gm,LPMaps map)

{

public void action() //重写基类

private void spriteDeadAction() //玛丽死时的动作

private void checkEnemyCollision() //检查与敌人碰撞

private void mainSpriteDamage() //检查是否踩到敌人

private boolean checkStaticSpriteCollision() //检查与静止不动的物品碰撞,

private void judgeKeyCode(int keyCode,int gameKeyCode)

private void freeKey(int KeyCode,int gameKeycode) //按键处理

private void walk() //人物走的动作

private boolean checkTileCollisionVertical() //检查与地图的纵向碰撞

private boolean checkTileCollisionHorizon() //检查与地图的横向碰撞

private void fire() //发射子弹

private boolean checkSpriteCollisionVertical() //检查纵向与敌人碰撞

private boolean checkSpriteCollisionHorizon() //检查横向与敌人碰撞

private void checkBulletDamage() //检查子弹与敌人的碰撞

public void init() //初始化

private void changeUpSpriteState() //检查砖块上方是否有敌人

public void readData(DataInputStream dis) //读取数据

throws java.io.IOException

public void writeData(DataOutputStream dos) //保存数据

throws java.io.IOException

}

}

4.2核心类

public class LPSprite

{

public int x; //横坐标

public int y; //纵坐标

相关文档
最新文档