import javax.swing.JFrame; import javax.swing.JPanel; import java.awt.Graphics; import java.awt.Image; import java.awt.Dimension; public class Subconscious extends JPanel { public static final String TITLE = "Subconscious"; /* graphics */ public JFrame window; // public Graphics dbGraphics; // double buffered graphics // public Image dbImage = null; // double buffered image public Scene currentScene; /* game */ public boolean gameOver = false; public boolean running = false; public Subconscious() { createWindow(); // TODO remove demo currentScene = new WorldScene(new Dimension(200, 200), 50); } public void createWindow() { window = new JFrame(TITLE); window.setSize(new Dimension(800, 600)); window.setLocationRelativeTo(null); window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); window.add(this); } /* game logic */ public void gameLoop() { } public void gameRender() { } public void start() { running = true; gameOver = false; window.setVisible(true); while (running) { gameLoop(); gameRender(); repaint(); try { // TODO replace with correct timing Thread.sleep(20); } catch (InterruptedException ex) { // } } } /* graphics */ @Override public void paintComponent(Graphics g) { currentScene.render(g); } /* main */ public static void main(String args[]) { Subconscious game = new Subconscious(); game.start(); } }