坦克大战(基于java线程)

坦克大战(基于java线程)

坦克大战是继五子棋后的新项目,基于java的图形化界面以及多线程来实现,主要是锻炼javaSE的基本能力

前言

本人是根据“马士兵”在网易云课堂上所提供的教学视频来做出的坦克大战,基本原理、思路与视频中所体现的一致,当然也有一些实现上的不同,当然这都是一些小细节,主要依据个人感受。

这里只是本人的学习心得以及收获。


版本迭代

编程时保存每一个版本,然后都是在上一个版本的基础上进行修改,添加新的功能,这时一种良好的编程习惯


功能逐渐完善

在这里把自己的做出的步骤列出,因为是后来补写的博客,所以可能有些地方记不清楚,但也算是一个教训,以后应该边做边记录所遇到的问题,解决办法以及收获心得,最后整理发布博客。

  • 绘制窗体并设置背景色,画出一个自由下落的球体,着色
  • 利用双缓冲来解决屏幕刷新时闪烁的问题
  • 对键盘进行监听,可以控制小球的移动方向
  • 整合代码,根据面对对象的思想,分离出Tank类
  • 小球可以拥有更多的移动方向,但是存在bug
  • 解决移动时存在的bug,并且画出tank的炮口
  • 按发射键可以发射出一颗炮弹,并且炮弹的方向可以随tank移动的方向改变
  • 整合代码,根绝面向对象思想,分离出Missile类
  • 对tank的炮口进行优化,优化炮弹的移动
  • 可以发射多发炮弹,并显示在屏幕左上角
  • 解决tank的出界问题
  • 添加敌方tank,可以被炮弹击中并消失
  • 添加爆炸效果,当tank被击中时发生爆炸
  • 可以自行添加多辆敌方tank
  • 敌方tank可以自主移动
  • 敌方tank可以发射子弹,并且可以互相击中并产生爆炸
  • 优化tank的重叠碰撞问题
  • 添加障碍物,炮弹无法穿越障碍物
  • 设置敌方tank低于一定数量后会自动添加,己方tank死亡后会随机出现在不同的位置
  • 己方tank添加作弊键,炮火增强
  • 可以记录最高分并保存

实现效果

运行截图:
坦克大战(基于java线程)_第1张图片


心得

做出这个坦克大战对于检查javaSE的掌握程度时很有帮助的,也增强了学习的信心,建议学习javaSE的初学者也都去自己做出一个”TankWar”

你可能感兴趣的:(坦克大战(基于java线程))