坦克大战单机版总结

这几天跟着马士兵的视频写出了《坦克大战》单机版,在此基础上我还修改了几个小版块,比如敌方的坦克全部被我军歼灭后,战争级数上升一级,我军的战斗值恢复到满值,自动生成一批坦克,每次敌军新增的坦克数量也随着级数的上升而增多,有点级数越高越难打的味道,另外还增加了一个若不同敌军子弹相撞则爆炸的效果。

这是我学习JAVA一个多月以来,首次做的一个小项目,由于之前学过别的语言,所以做起来并不觉得困难。通过这个小项目,让我更深的了解了面向对象,同时也更深入的了解了一些新的知识点,稍作总结:

对象能够移动的本质是:改变对象的坐标,再对对象重画。由于重画的速度很快,我们的肉眼无法察觉,因此就以为是移动了。根据坦克的起始坐标,根据坦克的方向设一个变量相应的改变坦克的起始坐标。然后在通过重画,就达到了运动的效果。

其次在不断的重画的过程中,由于刷新的频率大于重画的频率,导致会闪烁,可以通过加入一个线程不断的刷新来消除闪烁问题,具体实现方法:

到网上一查,发现还有其他方法,这个待研究。

还有通过构造子弹以及坦克,初步了解了ListArrayList等的用法,当然此个项目也有一些不足之处,比如说我军子弹和敌军子弹、以及我军坦克和敌军坦克没有分开控制,这样子导致无法完成我军子弹碰到敌军子弹可以爆炸等问题。

知道怎么通过按键监听来实现按键控制操作,如使坦克和炮弹按八个方向跑,可以参看Tank.java和Missile.java里的内容。

···

总的来说,这个项目使我对JAVA的兴趣又增添几分,因为每做出一步,都会让我有点小成就感,然后是到最终完成,又想去做它的升级版···

效果如图:

坦克大战单机版总结_第1张图片

下面贴出代码:

CSDN下载地址:http://download.csdn.net/detail/yanghai0321/3766202

说明:我军战死后按“F2”键可以重生一辆,按“Ctrl”键发射炮弹,按“A”键发射超级炮弹(可以向八个方向同时发射)!

主窗口:TankClient.java

坦克类:Tank.java


子弹类:

Missile.java


爆炸类:Explode.java


血块类:Blood.java


墙类:Wall.java



你可能感兴趣的:(总结)