Java.坦克大战小游戏【1.1】

任务

代码
和控制上下左右键一样,当按下 Ctrl 键发射子弹,也就是说,每次按下 Ctrl 键 new 一个子弹出来,即在 KeyPress() 监听器中对 Ctrl 进行监听

case KeyEvent.VK_CONTROL: tc.m = fire();break;

创建 fire() 类,由于要让炮弹在坦克正中间打出,可以计算出,new 出的子弹的位置是,坦克的 (x,y) 坐标加上坦克的一半宽和高度,再减去子弹自身的宽和高度

public Missile fire() {
        int x = this.x + Tank.TANK_WIDTH/2 -Missile.MISSILE_WIDTH/2;
        int y = this.y + Tank.TANK_HEIGH/2 -Missile.MISSILE_HEIGH/2;
        return new Missile(x,y,dir);
    }

最后在 Tank 类中拿到 TankClient 类的引用,借助其 paint() 方法画出子弹

TankClient tc;

    public Tank(int x,int y,TankClient tc) {
        this(x,y);
        this.tc = tc;
    }

猜你喜欢

转载自blog.csdn.net/liyuanyue2017/article/details/80245204