public static void main(String[] args) {
        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setTitle("Space Shooter Game");
        frame.addKeyListener(keyControl);
        frame.addWindowListener(windowControl);
        frame.setResizable(false);
        
        painter.setBackground(new Color(255, 255, 255, 0));
        Map.initialize();
        ImageManager.initialize();
        
        JPanel panel = new JPanel();
        panel.add(new JLabel(new ImageIcon(fixedImage)));
        panel.addMouseMotionListener(moveControl);
        panel.addMouseListener(clickControl);
        frame.add(panel);
        frame.setVisible(true);
        frame.setSize(WIDTH + 7, HEIGHT + 34);
        frame.setLocationRelativeTo(null);
        
        double timeStart = System.nanoTime();
        while (true) {
            if (System.nanoTime() - timeStart > 1000000000 / FPS) {
                fixedGraphics.clearRect(0, 0, WIDTH, HEIGHT);
                timeStart = System.nanoTime();
                Map.drawMap();
                
                debrisSprites = updateSprite(debrisSprites, debrisBuffer);
                debrisBuffer.clear();
                
                bulletSprites = updateSprite(bulletSprites, bulletBuffer);
                bulletBuffer.clear();
                
                Player.drawPlayer();
                
                explosionSprites = updateSprite(explosionSprites, explosionBuffer);
                explosionBuffer.clear();
                
                enemySprites = updateSprite(enemySprites, enemyBuffer);
                enemyBuffer.clear();
                
                Gui.drawTextOverlay();
                
                if (resetSprites && debrisSprites.size() + bulletSprites.size() + explosionSprites.size() + enemySprites.size() == 0) resetSprites = false;
                
//                transposeX = (-1 * Player.x) + (WIDTH / 2) - 25;
//                transposeY = (-1 * Player.y) + (HEIGHT / 2) - 25;
                
                fixedGraphics.drawImage(relativeImage, transposeX, transposeY, null);
                Gui.drawGui();
                frame.repaint();
            }
        }
    }