@Override
    public void hit(GameObject obj) {
        if (obj instanceof Bullet && !((Bullet)obj).enemy) {
            this.game.addScore(5);
            width = width / 2;
            height = height / 2;
            v = new Vector2D(Math.random() * MAX_SPEED, Math.random() * MAX_SPEED);
            if (width < 20 || height < 20) {
                dead = true;
                SoundManager.play(SoundManager.bangSmall);
            } else {
                Asteroid ast = new Asteroid(this.game, new Vector2D(s), new Vector2D(Math.random() * MAX_SPEED, Math.random() * MAX_SPEED));
                ast.width = width;
                ast.height = height;
                this.game.add(ast);
                SoundManager.play(SoundManager.bangLarge);
            }
            game.explosion(s,200,100, Color.LIGHT_GRAY);

        }
        else if (obj instanceof EnergyShield && ((EnergyShield)obj).active) {
            Vector2D nV = new Vector2D(obj.game.getShip().v);
            obj.game.getShip().v = v;
            v = nV;
        }

    }