So, I am getting a NullPointerException in the drawToScreen method when I try to draw the image... Does anyone know why?
Java Code:
package com.patrickfeltes.game;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import javax.swing.JPanel;
public class GamePanel extends JPanel implements Runnable {
public static final int WIDTH = 400;
public static final int HEIGHT = 300;
public static final int SCALE = 2;
public static boolean isRunning = false;
private Thread thread;
private static final int targetFPS = 60;
private long targetTime = 1000 / targetFPS;
private BufferedImage image;
private Graphics g, g2;
public GamePanel() {
setPreferredSize(new Dimension(WIDTH * SCALE, HEIGHT * SCALE));
start();
}
public void start() {
isRunning = true;
thread = new Thread(this);
thread.start();
}
public void run() {
image = new BufferedImage(WIDTH, HEIGHT, BufferedImage.TYPE_INT_RGB);
long start;
long elapsed;
long wait;
while(isRunning) {
start = System.nanoTime();
tick();
draw();
drawToScreen();
elapsed = System.nanoTime() - start;
wait = targetTime - elapsed;
if(wait < 0) {
wait = 17;
}
try {
Thread.sleep(wait);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
public void tick() {
}
public void draw() {
g = image.getGraphics();
g.fillRect(10, 10, 10, 10);
}
public void drawToScreen() {
g2 = getGraphics();
g2.drawImage(image, 0, 0, WIDTH * SCALE, HEIGHT * SCALE, null);
}
}
No comments:
Post a Comment