超级玛丽详细设计文档
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
超级玛丽详细设计文档
超级玛丽JA V A小游戏详细设计
目录
1.导言 ............................................................................................ 错误!未定义书签。
1.1编写目的 .................................................................... 错误!未定义书签。
1.2项目范围 .................................................................... 错误!未定义书签。
1.3参考资料 .................................................................... 错误!未定义书签。
1.4缩写说明 .................................................................... 错误!未定义书签。
1.5术语定义 .................................................................... 错误!未定义书签。
2.功能需求 .................................................................................... 错误!未定义书签。
2.1界面设计技术............................................................ 错误!未定义书签。
2.2游戏功能划分............................................................ 错误!未定义书签。
2.3功能划分的架构图.................................................... 错误!未定义书签。
2.4具体的功能模块........................................................ 错误!未定义书签。
2.5功能描述 .................................................................... 错误!未定义书签。
2.6程序的总体架构........................................................ 错误!未定义书签。
2.7程序的三层结构图 (6)
3.面向对象设计 (7)
3.1主要类图 (7)
3.2各个模块的方法或类名类表示 (8)
3.3地图绘制中的坐标说明 (8)
4.程序的详细设计 (9)
4.1主要人物玛丽的实现 (9)
4.2核心类 (9)
◆分离。
◆业务逻辑层。主要是游戏的人物和敌人的动作,碰撞的判断,这个与表现层
无关,需要表示层调用定义好的接口与逻辑层的通信
◆数据持久层。保存游戏中的数据,载入游戏中需要的资源,与程序逻辑层无
关,用XML文档存储数据
2.7程序的三层结构图
表现层(绘制屏
逻辑层(程序的
数据持久层(数
3.面向对象设计3.1主要类图
3.2各个模块的方法或类名类表示
3.3地图绘制中的坐标说明
4.程序的详细设计
部分源代码如下:
4.1主要人物玛丽的实现
package org.liky.mario;
import java.awt.image.BufferedImage;
public class Mario implements Runnable {
//坐标
private int x;
private int y;
//定义一个场景对象来保存mario当前所处的场景对象
private BackGround bg;
//加入线程
private Thread t=null;
//移动速度
private int xmove=0;
private int ymove=0;
//状态
private String status;
//显示的图片
private BufferedImage showImage;
//生命数和分数
private int life;
private int score;
//当前移动中显示的图片数
private int moving=0;
private int upTime=0;
//标记mario是否死亡
private boolean isDead=false;
//标记玩家是否完成了全部的游戏
private boolean isClear=false;
public Mario(int x,int y){
this.x=x;
this.y=y;
//初始化Mario图片
this.showImage=StaticValue.allMarioImage.get(0);
this.score=0;
this.life=3;
t=new Thread(this);
this.status="right--standing";
t.start();
}
public void leftMove(){
//改变速度
this.xmove=-30;
//改变状态
//如果当前已经是跳跃状态,应该保留原有状态,不应该改变状态if(this.status.indexOf("jumping")!=-1){
this.status="left--jumping";
}
else{
this.status="left--moving";
}
}
public void rightMove(){
this.xmove=30;
//如果当前已经是跳跃状态,应该保留原有状态,不应该改变状态if(this.status.indexOf("jumping")!=-1){
this.status="right--jumping";
}
else{
this.status="right--moving";
}
}
public void leftStop(){
this.xmove=0;
//如果当前已经是跳跃状态,应该保留原有状态,不应该改变状态if(this.status.indexOf("jumping")!=-1){
this.status="left--jumping";
}
else{
this.status="left--standing";
}
}
public void rightStop(){
this.xmove=0;
//如果当前已经是跳跃状态,应该保留原有状态,不应该改变状态if(this.status.indexOf("jumping")!=-1){
this.status="right--jumping";
}
else{