需求文档文档格式.docx
《需求文档文档格式.docx》由会员分享,可在线阅读,更多相关《需求文档文档格式.docx(10页珍藏版)》请在冰豆网上搜索。
2.3.4Enemy类的实现5
2.3.5Bomb类的实现6
2.3.6Img类的实现6
2.3.7MIDlet类的实现6
2.4游戏流程介绍6
第三章游戏测试8
3.1游戏功能测试8
第一章游戏需求与分析
1.1、游戏概况
1.1.1游戏简介
炸弹人游戏是一款益智类游戏,本游戏的创意是游戏主角在一个随机生成的地图中放置炸弹,以消灭地图中所有的敌人为目的。
游戏地图被设计成一个多行多列的棋盘,游戏中的主角和敌人每次都只能按照棋盘中相邻的棋盘格进行移动,而且在地图中海存在不同的障碍物,这些障碍物会阻挡游戏主角和敌人的移动。
而游戏的主角可以在没有任何障碍物的棋盘格中放置炸弹,炸弹爆炸时将炸毁和该棋盘格上下左右相邻的四个棋盘格中的某些障碍物和敌人,如果游戏主角处于炸弹的爆炸范围内,游戏主角也会被杀死。
炸弹人这款游戏是一款益智类游戏,这款游戏源于我们小时候的红白机时代。
该游戏本身功能简单有趣,很适合在手机上运行。
该游戏有如下元素:
·
空白区域:
是地图中游戏主角和敌人可以移动到的位置,也是游戏主角可以放置炸弹的位置。
岩石:
地图中的障碍物能够阻止游戏主角和敌人的移动,并且不能被炸弹炸毁
砖墙:
地图中的另外一种障碍物,能够阻止游戏主角和敌人的移动,但是可以被炸弹炸毁,炸毁后砖墙的位置将变成空白区域。
敌人:
地图中需要被游戏玩家消灭的一方,游戏主角需要放置炸弹将其炸死,敌人被杀死后,其所处的位置将变成空白区域,敌人可以在地图的空白区域中随便移动,当游戏主角碰到它时,会被其杀死,游戏也将以GAMEOVER的方式结束。
游戏主角:
游戏中有玩家控制的一方,可以在空白区域中随便移动,也可以在空白区域中放置炸弹。
1.2、游戏运行环境
1.2.1硬件环境
CPU:
Pentiun900CPU或以上
内存:
512MB以上内存
硬盘:
40GB以上硬盘
显示器:
VGA显示器或更高
1.2.2软件环境
操作系统:
WindowsXP
开发工具:
(1)WTK2.5
(2)Eclipse+EclipseME
使用技术:
J2ME
第二章游戏设计介绍
2.1、选题分析
同时这款游戏可以运用我们学过的j2me技术以及主修的java语言来实现。
Java语言是当今流行的编程语言,它具有面向对象、跨平台、分布应用等特点。
面向对象的开发方法是当今世界最流行的开发方法,它不仅具有更贴近自然的语义,而且有利于软件的维护和继承。
学会Java程序开发的环境搭建与配置,并在实际运用中学习和掌握Java程序开发的全过程。
进一步熟悉掌握Java程序设计语言的基础内容,如用户图形界面设计、Java多线程编程、Applet程序的设计、文件和网络输入输出流编程、Java数据库编程等。
通过亲自动手写程序,一方面拓展知识面,一方面锻炼调试能力
2.2、游戏总体架构
这款游戏采用的是模型和视图分离的方式。
视图是显示在手机屏幕上的游戏画面,这里采用了JAVAME中的低级用户界面技术绘制。
模型指的是如何去定义游戏中各种类型的元素及其在游戏地图中所处的位置,并且还需要提供根据给定的棋盘格所处的行和列的位置,来获取该棋盘格子中的元素和设定该棋盘格中元素等方法的定义。
开发时,游戏中的操作所涉及刀的数据使用传统的数据结构进行描述,游戏中的动作则映射成数据结构中数据的变化,在绘制显示给用户的视图时,视图只需要根据模型中的数据结构进行绘制即可。
该款游戏的地图被分为了11*11的棋盘,采用一个char型的二位数组表示该棋盘。
二维数组中的每一个数组元素则代表了游戏棋盘中的一个棋盘格。
在游戏进行时,只需要修改二维数组中对应的数据元素的内容即可,游戏的视图在绘制时则只需要遍历整个二维数组。
就可以绘制出当前游戏的运行画面了。
2.3、游戏各类说明
该游戏采用面向对象的设计方法,每个主要的功能都封装刀了不同的类中,该游戏程序中共有7个类:
Board类:
该类作为程序的模型定义类。
其中定义了游戏中所使用的数据结构以及对这些数据结构中的数据进行设置和获取的方法。
BoardView类:
该类作为程序的视图定义类,也是游戏的画布屏幕类,在该类中定义了如何根据用户的游戏动作绘制相应的游戏运行画面的方法
Bomb类:
该类表示游戏中的炸弹,定义了如何显示炸弹的爆炸效果以及炸弹爆炸后对其他相关元素的影响的方法。
Enemy类:
该类表示游戏中的敌人,具体定义了敌人如何随机移动以及判断敌人是否死亡的方法
Player类:
该类表示游戏中的主角,定义了游戏主角如何移动、如何放置炸弹以及判断游戏主角是否死亡的方法
Img类:
该类定义了游戏中各种图像的构造方法
jBombMan类:
该类是程序的MIDlet类。
2.3.1Board类的实现
该类的主要方法:
init()
这是该类的初始化方法init()。
在init()中首先遍历整个二维数组,把数组中的每个元素设置为空白区域,然后再遍历整个二维数组,将间隔的数组元素设置成岩石元素。
最后再遍历整个二维数组,在非岩石的位置上根据产生的随机数设置砖墙。
从而生成游戏的随机地图。
2.3.2BoardView类的实现
该类主要方法:
Paint()//绘制游戏屏幕
PaintGameOver()//定义绘制游戏结束的方法
paintWin()//定义绘制游戏玩家获胜的方法
paintFrame()//绘制游戏棋盘边框的方法
paintBoard()//定义绘制棋盘的方法
keyPressed()//定义绘制棋盘的方法
keyForInit()//定义游戏结束或者玩家胜利时的事件处理方法
keyForPlay()//定义游戏过程中的事件处理方法
repaintCells()//定义重新绘制棋盘格的方法
这个类主要负责的是响应按键时间以及定义如何将游戏的进行界面绘制出来。
该类中定义了绘制屏幕的paint()方法。
Paint()方法中首先根据游戏运行的状态来判断具体调用哪个绘制方法,游戏结束和玩家取胜的画面都是直接用Graphics的drawImage()方法将对应的图像绘制出来即可。
这个类中paintBoard()方法用来绘制游戏的棋盘,在该方法中首先调用paintFrame()来绘制游戏棋盘的边框,然后遍历游戏Board类中定义的二维数组根据数组中的每个元素的具体值来绘制对应的游戏元素的图像。
2.3.3Player类的实现
init()//初始化玩家的方法
clearBomb()//清除炸弹对象的方法
fire()//定义放置炸弹的方法
left()//定义游戏主角向左移动的方法
right()//定义游戏主角向右移动的方法
up()/定义游戏主角向上移动的方法
down()//定义游戏主角向下移动的方法
die()//定义游戏主角死掉的方法
在该类中首先定义了游戏主角初始化的方法init(),该方法将把游戏主角随机放置在游戏棋盘中的某个棋盘格中。
该类中还定义了主角从一个棋盘格从四个方向移动的方法。
这四个方法的基本思想是差不多的,都是先判断在移动之前的棋盘格中的游戏主角是否放置炸弹,如果放置则当游戏主角离开该棋盘格子后,原来棋盘格子中将放置炸弹元素,如果不放置则当游戏主角离开该棋盘格后,原来棋盘格中将放置空白区域元素,然后修改游戏主角位置的行或列,然后设置移动到得棋盘格子中设置游戏主角元素,最后调用绘制指定区域的方法画出移动后的游戏运行界面。
2.3.4Enemy类的实现
init()//初始化敌人的方法
run()//定义线程的方法体,在该方法中将定义敌人如何进行移动
move()//定义敌人的移动方法
canGo()//判断能否移动到指定棋盘格位置上的方法
die()//定义给定位置上的敌人死亡的方法
dieAll()//定义游戏中的所有敌人对象全部死亡的方法
在这个类中首先定义了游戏中初始化敌人的方法init(),在该方法中将随机产生敌人所在的棋盘格位置,如果生成的位置上恰好是空白区域,则将敌人放置在该位置上,并将该位置定义在新生成随机位置再次进行判断。
该类中还定义了敌人如何在棋盘中移动的方法,该方法的具体实现与Player类中移动的方法基本相似。
这个类中的die()方法,该方法的思想首先判断了给定的位置上是否有敌人元素,如果有则将对应该位置上的二位数组arrPositions中的值设置为-1,这表示该数组元素表示的敌人已经死亡,然后遍历整个二维数组。
当数组中-1的个数等于初始化游戏生成的敌人的个数,表示游戏中的敌人全部被消灭,玩家获胜。
2.3.5Bomb类的实现
explode()//根据给定的单元格判断炸弹爆炸后的结果的方法
clear()//清空给定的单元格中的元素
run()//定义线程的方法体,在该方法中将定义炸弹爆炸的效果
该类中的explode()方法定义了在给定位置放置炸弹后,炸弹爆炸所影响到的其他棋盘格的情况。
如果炸弹爆炸式影响的棋盘格中式游戏主角元素,则调用Player()类中的die()方法炸死游戏主角,如果炸弹爆炸时影响的棋盘格中是敌人元素,则调用Enemy类中的die()方法是敌人死掉。
2.3.6Img类的实现
该类中使用数组的方式,画出每个元素的图像,这个方法是创建游戏中炸弹爆炸效果图像的方法
2.3.7MIDlet类的实现
这个类中,分别创建了游戏的Board类对象和游戏的BoardView类对象,然后再创建游戏的主角类以及7个敌人类的对象,并使这些对象产生关联。
然后在startApp()方法中调用Display类的setCurrent()方法设置当前要显示的游戏画面,开始游戏的运行。
2.4游戏流程介绍
游戏流程图:
流程介绍:
游戏主角在一个随机生成的地图中放置炸弹,以消灭地图中所有的敌人为目的。
第三章游戏测试
3.1游戏功能测试
游戏初始的随机地图:
游戏主角死去:
游戏通关后: