第一步优化定时器
    public void startGameTask(){
    bgRoll= new BgRoll();
    shootTask = new ShootTask();
    enemyTask =new EnemyTask();
    hitTask = new HitTask();
    timer.schedule(bgRoll, 0, 50);
    timer.schedule(shootTask, 0, 500);
    timer.schedule(enemyTask, 0, 1000);
    timer.schedule(hitTask,0,50);
    }

    public void pauseGameTask(){
    bgRoll.cancel();
    shootTask.cancel();
    enemyTask.cancel();
    hitTask.cancel();
    }

    //添加事件,改变游戏状态
    super.addMouseListener(new MouseAdapter() {
    @Override
    public void mouseClicked(MouseEvent e) {
    switch (gameState) {
    //当游戏状态是START 点击 变成RUNNING
    case START:
    case PAUSE:
    gameState = GameState.RUNNING;
    startGameTask();
    break;
    case RUNNING:
    gameState = GameState.PAUSE;
    pauseGameTask();
    repaint();
    break;
    case GAME_OVER:
    gameState = GameState.START;
    break;
    }
    }
    });

    第二步,优化击中敌机效果
    class EnemyAirplaneAnimation extends TimerTask{
    int num;
    @Override
    public void run() {
    //如果死亡,就播放动画
    if(isDead()){
    num++;
    BufferedImage image = ImageLoaderUtil.load(“enemy”+type+”_down”+num+”.png”);
    //EnemyAirplane.super.image = image;
    if((type!=4&&num==4)||(type==2&&num==6)){
    num = 0;
    destroy();
    }
    setImage(image);
    }

    1. }<br />}

    Timer timer = new Timer();
    timer.schedule(new EnemyAirplaneAnimation(),0, 200);

    // 检测敌机是否与子弹碰撞
    for(Bullet bullet:bullets){
    for(FlySprite enemy:enemys){
    //PhysicsManager.isHit(bullet,enemy)
    if(bullet.isHit(enemy)){
    bullet.destroy();
    if(enemy instanceof EnemyAirplane){
    enemy.setDead(true);
    }

    1. if(enemy instanceof BuffAward){<br /> enemy.destroy();<br /> }<br /> }<br /> }<br />}