import javax.swing.JFrame; import javax.swing.JPanel; import java.awt.Graphics; import java.awt.Image; import java.awt.Dimension; import java.awt.event.MouseListener; import java.awt.event.MouseEvent; public class Subconscious extends JPanel implements MouseListener { 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); addMouseListener(this); } 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); } /* listener */ public void mouseClicked(MouseEvent e) { int x = e.getX(); int y = e.getY(); } public void mousePressed(MouseEvent e) {} public void mouseReleased(MouseEvent e) {} public void mouseEntered(MouseEvent e) {} public void mouseExited(MouseEvent e) {} /* main */ public static void main(String args[]) { Subconscious game = new Subconscious(); game.start(); } }