Hey CPers,
Ik ben bezig met het maken van een MVC gebasseerde Java applet (niet te verwarren met Javascript).
Op de een of andere manier wil mijn script geen image drawen (Slechte zin, I know). Heeft iemand enig idee wat ik hier fout doe?
Code:
PHP
package MyProject;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.awt.image.ImageObserver;
import java.awt.Toolkit;
import javax.swing.ImageIcon;
import javax.swing.JApplet;
public class View extends JApplet {
private BufferedImage buffer;
private Graphics draw;
Entity player = new Entity(20, 20, loadImage("player.png"));
public View(){
setIgnoreRepaint(true);
setFocusable(true);
start();
}
public void init() {
System.out.println("Check");
buffer = new BufferedImage(800,600,BufferedImage.TYPE_INT_RGB);
}
public void start() {
init();
while(true){
try
{
drawBuffer();
drawScreen();
Thread.sleep(15);
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
public void stop() { }
public void destroy() { }
public void run () {
}
private Image loadImage(String fileName) {
System.out.println("LoadImage");
return new ImageIcon(fileName).getImage();
}
public void drawBuffer(){
Graphics2D b = buffer.createGraphics();
b.setColor(Color.black);
b.fillRect(0,0,800,600);
ImageObserver paintingChild = null;
b.drawImage(player.getImage(), player.getX(), player.getY(), paintingChild);
b.dispose();
}
public void drawScreen () {
Graphics2D g = (Graphics2D)this.getGraphics();
g.drawImage(buffer,0,0,this);
Toolkit.getDefaultToolkit().sync();
g.dispose();
}
public void update (Graphics g)
{
}
}
Toon Meer
Dit is de foutmelding:
java.lang.NullPointerException
at MyProject.View.drawScreen(View.java:72)
at MyProject.View.start(View.java:37)
at MyProject.View.<init>(View.java:23)
at MyProject.App.main(App.java:7)
Hij refereert naar deze regel:
Aangezien het een nullpointerexception is, vraagt hij dus ergens om een waarde die er niet is. Ik ga er dus vanuit dat hij de Image waarde van buffer niet kan lezen.
Ziet iemand wat ik daar fout heb gedaan?
Groeten, Darkvirus.