private void pollKeyboard() {
//        if (input.isKeyDown(KeyEvent.VK_ADD)) backgroundMusic.setGainLevel(backgroundMusic.getGainLevel() + 0.7f);
//        if (input.isKeyDown(KeyEvent.VK_SUBTRACT)) backgroundMusic.setGainLevel(backgroundMusic.getGainLevel() - 0.7f);
        if (input.isKeyReleased()) {
            if (input.isKeyUp(KeyEvent.VK_P) || input.isKeyUp(KeyEvent.VK_PAUSE)) togglePause(); // P and PAUSE = Pause Game
            if (input.isKeyUp(KeyEvent.VK_F1)) { // Help Popup
                Thread t = new Thread() {
                    @Override
                    public void run() {
                    JOptionPane.showMessageDialog(null, "You can use either WASD or the arrows to navigate."
                        + "\n\nW / Up = Jump\nA / Left = Left\nS / Down = Unassigned\n"
                        + "D / Right = Right\n\nHold Shift = Sprint\n\nSpacebar = Shoot"
                        + "\nR / NumPad 0 = Reload"
                        + "\n\n1 / 2 = Select gun"
                        + "\n\nF3 = Display / Hide Performance Overlay"
                        + "\nF12 = Reload the test level", "Controls", JOptionPane.INFORMATION_MESSAGE); // Find a better solution than JOptionPane
                    }
                };
                t.start();
            }
            if (input.isKeyUp(KeyEvent.VK_F3)) { // Toggle FPS & TPS
                hud.toggleDebugInfo();
            }
            if (input.isKeyUp(KeyEvent.VK_F12)) {
                level = new Level(loader.loadImage("/level/level1.png"), handler);
            }
            if (input.isKeyUp(KeyEvent.VK_F11)) {                    
                level = new Level(loader.loadImage("/level/flat.png"), handler);
            }
        }
        input.update();
    }