单机版坦克大战游戏详细设计说明书

单机版坦克大战游戏详细设计说明书

ID:1346484

大小:172.00 KB

页数:18页

时间:2017-11-10

单机版坦克大战游戏详细设计说明书_第1页
单机版坦克大战游戏详细设计说明书_第2页
单机版坦克大战游戏详细设计说明书_第3页
单机版坦克大战游戏详细设计说明书_第4页
单机版坦克大战游戏详细设计说明书_第5页
资源描述:

《单机版坦克大战游戏详细设计说明书》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、单机版坦克大战游戏详细设计说明书1.1编写目的为明确软件需求、安排项目规划与进度、组织软件开发与测试,撰写本文档。本文档供项目经理、设计人员、开发人员参考。1.2项目背景a.项目名称:坦克大战游戏开发b.产品用户:对该游戏感兴趣的玩家c.项目和系统的关系:本项目旨在编写出一个操作简单但可玩性良好的小游戏来让玩家放松一下心情,对系统硬件配置要求低。实现简单。1.3定义持有对方的引用:在一个类里面有一个成员变量是另一个类的对象,这个对象相对于这个类来说就是持有了另一个类的引用,通过这个对象作成员变量可以引用对象这个类的成员变量和成员方法。内部类:写在一个类内部的类是内部类,内部

2、类封装在类的内部,不能被其他的外部类直接访问,起到保护作用,但要写的简短。1.4参考资料《Java基础知识详解》《Java游戏开发》等。-17-2.总体设计2.1需求概述游戏包括的范围:本游戏包括主类、坦克类、子弹类、爆炸类、墙类、血块类。要求游戏能有效、快速、安全、可靠和无误的完成上述操作。并要求客户端的界面要简单明了、易于操作,服务器程序利于维护。需求模块产生游戏的屏幕主类模块将坦克大战的过程呈现在屏幕上画出坦克坦克类模块控制坦克的移动并让坦克可以攻击让坦克不可以穿越墙或别的坦克添加坦克的图片画出子弹子弹类模块控制子弹的移动详细查看员工信息让子弹不可以穿墙添加子弹的图片

3、添加培训信息爆炸类模块画出爆炸的过程控制坦克的爆炸添加爆炸的图片画出墙墙类模块实现墙的功能画出血块血块类模块让血块围绕着固定的轨迹移动实现血块的功能-17-3.程序描述3.1程序逻辑3.1.1主类模块主类是要画出屏幕,并且要将坦克之间打斗的全过程都呈现出来的,所以要先产生一个窗口,窗口产生之后应该要不停的刷新,否则屏幕会定格成画面,用多线程来控制刷新的频率,如果此时屏幕出现闪屏现象,应该用双缓冲机制来画出屏幕。双缓冲机制是通过虚拟出一张图片,将屏幕画在这张虚拟的图片上,再将这张虚拟的图片呈现在屏幕上。调用的方法如下:publicvoidupdate(Graphicsg){i

4、f(offScreenImage==null){offScreenImage=this.createImage(GAME_WIDTH,GAME_HEIGHT);}GraphicsgOffScreen=offScreenImage.getGraphics();Colorc=gOffScreen.getColor();gOffScreen.setColor(Color.GREEN);gOffScreen.fillRect(0,0,GAME_WIDTH,GAME_HEIGHT);gOffScreen.setColor(c);paint(gOffScreen);g.drawImag

5、e(offScreenImage,0,0,null);}用多线程来控制屏幕刷新的频率的方法如下:privateclassPaintThreadimplementsRunnable{publicvoidrun(){while(true){try{repaint();Thread.sleep((int)Math.random()*200);}catch(InterruptedExceptione){e.printStackTrace();}}}}-17-控制其他模块的操作都是在主类中调用其他类的方法即可。3.1.2坦克类模块该类实现在屏幕上画出坦克,并控制坦克的移动,让坦克可以

6、发射炮弹打对方等功能。画出坦克的方法如下:publicvoiddraw(Graphicsg){Colorc=g.getColor();if(good)g.setColor(Color.RED);elseg.setColor(Color.BLUE);g.fillOval(x,y,WIDTH,HEIGHT);g.setColor(c);move();switch(ptDir){caseL:g.drawLine(x+Tank.WIDTH/2,y+Tank.HEIGHT/2,x,y+Tank.HEIGHT/2);break;caseLU:g.drawLine(x+Tank.WIDT

7、H/2,y+Tank.HEIGHT/2,x,y);break;caseLD:g.drawLine(x+Tank.WIDTH/2,y+Tank.HEIGHT/2,x,y+Tank.HEIGHT);break;caseR:g.drawLine(x+Tank.WIDTH/2,y+Tank.HEIGHT/2,x+Tank.WIDTH,y+Tank.HEIGHT/2);break;caseRU:g.drawLine(x+Tank.WIDTH/2,y+Tank.HEIGHT/2,x+Tank.WIDTH,y);break;ca

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。