Java实例-坦克大战
一.样例图片
二.类图结构
坦克大战中的所有类
类的关系图
我的坦克类
三.说明
1、每一个新的独立运行的东西就是一个线程,像我方坦克,像敌方坦克,像所有的子弹
2、每一个线程要实现run方法,也要start启动线程
3、无论坦克,子弹,都有生命,都有坐标(静),都有速度,都有运动的方向(动)
4、坦克和子弹的运动都是靠修改坐标后的刷新坐标来实现的
5、坦克的子弹的显现都是通过JPanel里面的paint出来的,不断的repaint就能显现所有的运动
6、子弹的连续运动是通过run方法里面的死循环实现的,也就是不断的变换坐标
7、键盘动作是通过键盘监听来的
8、多个线程是被集合类存储起来的,像子弹集合,像敌方坦克集合
9、自己坦克的动是因为键盘事件里面的repaint,敌方坦克的动却是因为Tank1界面里面调用MyPanel线程的start函数,run里面有repaint
10、运行repaint的实质是再次调用paint函数,所以我们需要看看paint里面有什么
11、paint函数里面其实就是什么有生命我就画什么就好,有多少个我画多少个,例如我方坦克,敌方坦克,我方子弹,敌方子弹
12、画敌方子弹需要双重循环,那还不如和敌方坦克画在一起
13、子弹发射了还要绘制才可能出来
四.代码
代码在百度盘上:http://pan.baidu.com/s/1hrYFjxU
(1)主界面:TankWarUI类
(2)坦克作战区:MyPanel类
(3)子弹:Bullet类
(4)坦克类:Tank类
(5)我的坦克类:MyTank类
(6)敌人坦克类:EnemyTank类