坦克大战系统《Java程序开发实训》综合实训报告

《Java程序开发实训》综合实训报告

题目: 坦克大战系统

姓名: 方庆

学号: 2010203206

班级: 10软件(2)班

系统实现的主要功能及运行结果截图

选择的语言的原因

游戏本身是一种娱乐方式,带给人无尽的乐趣,而且游戏行业的发展也将是带动周边行业的发展。同样对做出游戏的人的要求也会越来越高一满足游戏爱好者的要求。本次期末设计就是设计一种娱乐性较强的小游戏坦克大战,说到大战其实是不敢当的。但游戏基本拥有可玩性。java语言是一种跨平台,适合与分布计算环境的面向对象编程语言,java主要用在web开发,手机游戏及一些平台游戏的开发,他有很好的跨平台性。所以本次的设计坦克游戏选择的是java。

系统软件的软件环境

1.网络服务器操作系统:Window是 XP以上

2.开发工具:Eclipse

3运行环境:J2sdk

4.编程语言:java语言。

人机对战模式功能

1.能够发射子弹打击敌人2.敌人能够移动3.能够模拟爆炸4.能够产生障碍

5能够增长生命6.能够使用超级子弹

坦克可以发射子弹

玩家坦克被击中血量减少。

被击中的坦克发生爆炸并且吃血块可以加血量。

玩家坦克可以从把方向发射超级子弹

自己的TankHealth为<=0时,。说明玩家坦克已死亡。游戏结束

本系统的坦克大战是基于java语言设计的开发,具有较高的人工智能和相对的图形处理。游戏可一人作战每次电脑方有10辆坦克,

此一举消灭全部的敌方坦克为目的。在这过程中坦克有机会得到血块来添加自己的生命值。从而变得强大。也利用wall来形成阻击敌人。

游戏拥有开挂的功能。可以穿过墙体来攻击敌方坦克。还给玩家坦克

置了超级炮弹。从八个方向同时射出炮弹来摧毁敌方坦克。主要功能

简单罗列如下:

1.屏幕左上方显示游戏的状态,当玩家方坦克全数为0是游戏结束

2.敌方坦克只在空地上行走,不可通过Wall

3.游戏打坏敌方坦克后,可随机位置随机出现血块奖励。坦克经过该

位置可获得相应的生命值加成。

4.玩家坦克的游戏资格和电脑坦克不同。

TankClient类设计流程

游戏系统类关联图

TankClient类

此类主要功能是利用java中包来实现的坦克游戏的主主窗口,以及对其他类调用和实例化

Blood类

此类主要定义坦克的生命值,有可以控制玩家坦克加血等操作方法。

Missile类

此类主要的是游戏中的炮弹类,其中有炮弹的大小以及移动等成员。

BaoZha类

此类定义的是坦克被攻击的爆炸,其中有坦克击毁的图形变化等成员。

Tank基本类功能分析

Tank类中,封装了一些变量属性,包括坦克自己的大小。运动速度方向控制、生死控制、好坏控制。Tank类中没有main函数,不是主类,它当中只封装一些变量属性和静态方法,被TankClient类调用来实现坦克的一系列动作Tank类主要方法如下:

1.getRect()方法

public Rectangle getRect(){

Return new Rectangle(x,y this.WIDTH,this.HEIGHT)

Rectangle类是碰撞检测的辅助类,通过得到子弹x,y的坐标。检测是否碰撞.

2.draw()方法:负责将所有的活动在屏幕上画出来;

3.move()方法:主要负责坦克的移动,包括八个方向的控制以及坦克一个移动速度;

4.boolean()方法:设定键盘事件。控制坦克移动

5.KeyRelesed()方法:处理按键抬起事件,安“J”键时,发射普通炮弹。抬起“K”键发射超级炮弹

6.locationDirection()方法:定义炮筒的方向,可以向八个方向发射炮弹

7.fire()方法:处理发送子弹的方法;

Missile类的基本功能分析

Missile(子弹)类和Tank类一样,只封装一些变量属性和静态方法,主要包括:子弹的大小,运动的速度,Missile类持有一个TankClient类的引用tc,TankClient类要执行发射炮弹操作是调用Missile类中的方法。Missile类中的方法主要如下:

1.draw()方法:负责画出子弹的所有活动

2.move()方法:先判断方向在移动。并且给一定的移动速度。

3.个头Rect方法:负责取得子弹的方形,为碰撞做准备;

4.hitTank()方法:检测子弹是否撞到坦克撞到返回ture,否则返回false。

BaoZha类的基本功能分析

BaoZha(爆炸)类也是封装自己的变量和方法的外部包装类,没有main方法,供TankClient主类需要时调用它的draw()方法,当子弹击中坦克是需要产生爆炸。下面是爆炸的图片:

综合实训过程中遇到的问题及解决方法

遇到的问题:

炮弹不消失

坦克出界

解决方案:

java坦克大战 实训报告_坦克大战系统《Java程序开发实训》综合实训报告.doc相关推荐

  1. c语言课程设计坦克大战,funcodec++课程设计_坦克大战

    <funcodec++课程设计_坦克大战>由会员分享,可在线阅读,更多相关<funcodec++课程设计_坦克大战(24页珍藏版)>请在人人文库网上搜索. 1.课程设计一 坦克 ...

  2. java电商秒杀深度优化_【B0796】Java性能优化亿级流量秒杀方案及电商项目秒杀实操2020视频教程...

    Java视频教程名称:Java性能优化亿级流量秒杀方案及电商项目秒杀实操2020视频教程    java自学网[javazx.com]  性能视频教程   it教程 Java自学网收集整理 java论 ...

  3. java上课签到系统开题报告_学生考勤系统的设计与实现开题报告.doc

    学生考勤系统的设计与实现开题报告 江 苏 大 学 京 江 学 院 学生毕业设计(论文)开题报告 一.基本情况 课题 情况课题名称学生考勤系统的设计与实现课题来源开题时间计划完成时间课题承担人(学生)情 ...

  4. ios java aes_PHP7 AES加密解密函数_兼容ios/andriod/java对等加解密

    **PHP7.0 7.1 7.2 7.3 AES对等加解密类 函数文件_兼容ios/andriod/java等** 由于新项目规划要求使用PHP7.2开发环境,但在部分新系统中仍需使用AES加解密方式 ...

  5. java和.net能共存吗_是否能让JAVA 和 .NET框架共存(转)

    原创作者:Ashish Banerjee 翻译整理:51DOTNET CLUB(WWW.51DOTNET.COM)SLASH 目的:对JAVA与.NET框架共存的可能性做一个评估 目标受众:JAVA程 ...

  6. java中的de是什么_【转】java中main函数解析

    源地址:http://www.cnblogs.com/xwdreamer/archive/2012/04/09/2438845.html 从写java至今,写的最多的可能就是主函数 public st ...

  7. java工程如何跑起来的_你编写的Java代码是咋跑起来的?

    如果你是一名 Java 开发人员,你肯定指定 Java 代码有很多种不同的运行方式.比如说可以在开发工具(IDEA.Eclipse等)中运行,可以双击执行 jar 文件运行,也可以在命令行中运行,甚至 ...

  8. 运行java黑窗口是什么意思_黑窗口运行java文件步骤

    误区纠正:运行java文件可以不用配置jdk环境变量,配置jdk只是为了方便运行时找到它 未配置环境变量运行java程序步骤: 1.安装jdk,在G盘下建一个java文件测试类 2.win+r 快捷键 ...

  9. java 父类返回子类是咧_【daily】Java泛型 - 返回父类的子类

    一.栗子 public class GenericityInher { //error: Type mismatch: cannot convert from ArrayList to ArrayLi ...

最新文章

  1. 《神经架构搜索NAS》最新进展综述,25页pdf
  2. java 连接mysql 8.0,java连接mysql 8.0的问题
  3. 对象的比较与排序(三):实现IComparableT和IComparerT泛型接口
  4. poj 3614(最大流)
  5. linux脚本下载,一个测试下载速度的shell脚本
  6. 2015-01-14
  7. 分布式Redis的分布式锁 Redlock
  8. 信息学奥赛一本通C++语言——1061:求整数的和与均值
  9. 采用MATLAB的DSP调试方法
  10. android开发模仿文件管理器_2020 Web界面开发:DevExtreme全新的Diagram控件、文件管理器...
  11. 产品研发管理(二):使用SubVersion进行代码管理
  12. 《Java设计模式》之代理模式 -Java动态代理(InvocationHandler) -简单实现
  13. jsp登录注册页面代码
  14. Redhat8 配置使用阿里源(关闭官方订阅)
  15. python for ArcGIS 绘制重庆市板块地图
  16. TalkingData
  17. Matlab/Simulink仿真问题及技巧汇总【持续更新】
  18. Windows10插了耳机电脑还是外放
  19. 主成分分析 PCA 线性判别分类LDA
  20. c1任务如何通过进制转换修改关卡和金币

热门文章

  1. C# 利用Datatable 分组求和
  2. Opengl红宝书第一个例子_VS2017_glew2.1_x64_记录成功的代码段
  3. SCI论文写作神器集合 —— 超级实用
  4. linux下安装transmission下载种子
  5. Android校验应用签名是否被篡改
  6. 华为一前员工【惯例】失败案例分享
  7. 用nodejs把多个PDF文件成为一个PDF文件
  8. 26对称矩阵及正定性
  9. Web应用程序与桌面应用程序的区别
  10. 学完stm32开发板下一步如何选嵌入式ARM开发板