p600-611

坦克大战!

艰难推进中

坦克大战-子弹

发射子弹

1.当发射一颗子弹后,就相当于启动一个线程

2.玩家拥有子弹对象,当按下J时,就启动发射行为(线程),让子弹不停移动,形成射击的过程。

3.面板mypanel需要不停重绘,才能出现这个效果

4.当子弹移动到面板边界时,就销毁子弹线程。

 

增加功能:让敌人发射子弹,且可以有多颗子弹。

1.在敌人坦克类中增加Vector来保存多个子弹

2.当创建敌人坦克时,就初始化一个shot给Vector,同时启动它

3.在绘制敌人坦克时,需要遍历敌人坦克对象的Vector,绘制所有子弹。

4.当子弹的isLive==false的时候,就从Vector中移除子弹。

子弹命中,敌人爆炸,敌人移动

这章有点长脑子。

0603_韩顺平Java_敌方坦克消失_哔哩哔哩_bilibili

让敌人的坦克也可以自由随机的上下左右移动思路分析
1.因为要求敌人的坦克,可以自由移动,因此需要将敌人坦克当做线程使用
2.我们需要Enemy Tank implements Runnable

3.在run方法中写上相应的代码即可!

多发子弹

我方坦克在发射的子弹消亡后,才能发射新的子弹=→>扩展(发多颖子弹怎么办)

1.在按下J键,我们判断当前hero对象的子弹,是否已经销毁
2.如果没有销毁。就不去触发shotEnemy

3.如果已经销毁,才去出发

使用Vector保存我的子弹 

敌人的坦克打到我,我爆炸

尝试失败了,等老韩吧,只能成功实现敌人打中我让我动不了。

。。。


IO流

文件,对我们并不陌生,文件是保存数据的地方,比如大家经常使用的word文档,txt文件.excel文件...都是文件。它既可以保存一张图片,也可以保持视频声音。
韩顺平0基础学java——第30天-LMLPHP

韩顺平0基础学java——第30天-LMLPHP

文件类实现了串行化(网络传输!)、可比较

例:

public void cr2(){
    File father_file = new File("D:\\madake");
    String filename = "mdk2.txt";
    File file1 = new File(father_file, filename); //在内存里创造。只是个对象
    try {
        file1.createNewFile();//写入硬盘。
        System.out.println("创建成功2");
    } catch (IOException e) {
        e.printStackTrace();
    }
}

 

06-27 14:30