@Override public void render() { BufferStrategy bs = canvas.getBufferStrategy(); if (bs == null) { canvas.createBufferStrategy(3); return; } screen.clear(); int xScroll = (int) player.x() - screen.getWidth() / 2; int yScroll = (int) player.y() - screen.getHeight() / 2; level.render(xScroll, yScroll, screen); for (int i = 0; i < pixels.length; i++) { pixels[i] = screen.getPixels()[i]; } Graphics g = bs.getDrawGraphics(); g.drawImage(image, 0, 0, canvas.getWidth(), canvas.getHeight(), null); g.setColor(Color.WHITE); g.setFont(new Font("Verdana", 0, 50)); window.setTitle( TITLE + " | " + getFps() + " fps, " + getUps() + " update" + (getUps() > 1 ? " catchup" : "") + " per render"); Toolkit.getDefaultToolkit().sync(); g.dispose(); bs.show(); }
public Overworld() { frame = new JFrame("Basic Game"); JPanel panel = (JPanel) frame.getContentPane(); panel.setPreferredSize(new Dimension(1000, 1000)); panel.setLayout(null); canvas = new Canvas(); canvas.setBounds(0, 0, 1020, 1020); canvas.setIgnoreRepaint(true); panel.add(canvas); canvas.addMouseListener(new MouseControl()); canvas.addMouseMotionListener(new MyClass()); canvas.addKeyListener(new KeyControl()); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.pack(); frame.setResizable(false); frame.setVisible(true); canvas.createBufferStrategy(2); bufferStrategy = canvas.getBufferStrategy(); canvas.requestFocus(); }
public synchronized void setRenderOptions() { if (canvas != null) { this.remove(canvas); } screenScaleFactor = PrefsSingleton.get().getInt("screenScaling", 2); smoothScale = PrefsSingleton.get().getBoolean("smoothScaling", false); if (PrefsSingleton.get().getBoolean("TVEmulation", false)) { renderer = new NTSCRenderer(); NES_WIDTH = 302; } else { renderer = new RGBRenderer(); NES_WIDTH = 256; } if (PrefsSingleton.get().getInt("region", 0) > 1) { NES_HEIGHT = 240; renderer.setClip(0); } else { NES_HEIGHT = 224; renderer.setClip(8); } // Create canvas for painting canvas = new Canvas(); canvas.setSize(NES_WIDTH * screenScaleFactor, NES_HEIGHT * screenScaleFactor); canvas.setEnabled(false); // otherwise it steals input events. // Add canvas to game window this.add(canvas); this.pack(); canvas.createBufferStrategy(2); buffer = canvas.getBufferStrategy(); }
@Override public void init() { Dimension appletDimension = getSize(); canvasWidth = appletDimension.width; canvasHeight = appletDimension.height; setFrameRate(MAX_FRAMERATE); // Set up animation tools canvas = new Canvas(); canvas.setIgnoreRepaint(true); canvas.setSize(canvasWidth, canvasHeight); add(canvas); // Set up double buffer canvas.createBufferStrategy(2); buffer = canvas.getBufferStrategy(); }