一,建一个不可改变大小的窗口,并设置好标题、背景色
1,显示一个窗口尽量从Frame继承;
二,画一个圆出来代表坦克
1,重写paint方法来画一个圆;
三,使坦克动起来也就是使圆动起来
1,要使圆动起来只需改变圆的坐标,因此要把坐标设置为变量;
2,写一个线程来不断地重画圆,即坦克动起来的画面;
四,添加键盘监听器来控制坦克的移动
五,为坦克单独构造一个类(运用面向对象的思维);
六,给坦克移动增加到八个方向;
1,定义变量来表示按键的状态,方向;
2,根据方向来移动坦克的位置,为坦克添加一个移动的方法;
七,添加子弹类
1,添加方法画出子弹,移动子弹;
八,给坦克添加炮筒
1,定义炮筒的方向;
2,把子弹的方向和炮筒的方向设为一致;
九,添加多枚子弹
1,用一个容器来装子弹
十,解决子弹不消亡和坦克出界问题
1,如果子弹出界后,在容器中remove掉子弹;
2,判断坦克的位置,若超出边界则设置为边界位置;
十一,造出敌人的坦克
1,加入区别敌我的量并区别敌我的颜色;
2,在构造函数中加入区别敌我的量;
3,new出敌人的坦克并画出;
十二,打掉敌人的坦克
1,碰撞检测的辅助类Rectangle,检测相交的方法intersects
十三,产生爆炸的效果
1,添加爆炸类;
2,把爆炸添加到集合类中
3,击毙一辆坦克后产生爆炸
十四,添加多辆坦克
1,创建<Tank>List,然后添加多辆坦克;
2,在原有的hitTank方法上写一个hitTanks方法用来打多辆坦克;
十五,使敌方坦克随机移动
1,把枚举类型的一组数转化为数组;
2,设置一个随机数产生器,来获取一个随机数;
3,随机得到数组中的一个数;
4,设置一个变量来记录坦克移动的步数,然后再让坦克在移动随机的步数后,当随机步数为零时改变移动方向;
十六,让敌方坦克可以发射子弹
1,敌方坦克不打自己人;
2,坦克死了之后就不能再发射子弹了;