Grüße, ich bekomme es einfach nicht hin die BufferStrategy in mein kleines Pong spiel ein zu bauen.
Hier der Code von meinem Frame
Das ganze rufe ich meiner gameloop über frame.draw(); auf. Leider habe ich keine Idee wo ich den Fehler eingebaut habe.
Hier noch meine alte paint Methode mit der es funktioniert hat.
Hier der Code von meinem Frame
Code:
public class Window extends JFrame implements KeyListener {
Image ball = null;
Image block = null;
Image menu1 = null;
Image menu2 = null;
private BufferStrategy buffer;
public Window() {
super("Pong");
//init
addKeyListener(this);
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
setLayout(null);
setResizable(false);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
try {
//load background
setContentPane(new JLabel(new ImageIcon(ImageIO.read(new File("src/IMG/test.png")))));
//load Images
ball = (ImageIO.read(new File("src/IMG/ball.png")));
block = (ImageIO.read(new File("src/IMG/balken.png")));
menu1 = (ImageIO.read(new File("src/IMG/new_game.png")));
menu2 = (ImageIO.read(new File("src/IMG/quit.png")));
} catch (IOException e) {
e.printStackTrace();
}
pack();
//set position
setBounds((screenSize.width / 2) - (getWidth() / 2),(screenSize.height / 2) - (getHeight() / 2),getWidth(), getHeight());
//end
setVisible(true);
createBufferStrategy(2);
buffer = getBufferStrategy();
}
public void draw(){
Graphics g = buffer.getDrawGraphics();
g.drawImage(block,Main.player.position_y-3,Main.player.position_x-3, null);
g.drawImage(block,Main.computer.position_y-3,Main.computer.position_x-3, null);
g.drawImage(ball, Main.ball.position_y - 5,Main.ball.position_x -5, null);
if(Main.game_switch == false){
if(Main.menu_switch == true){
g.drawImage(menu1,203,150, null);
}else{
g.drawImage(menu2,203,150, null);}}
}
Das ganze rufe ich meiner gameloop über frame.draw(); auf. Leider habe ich keine Idee wo ich den Fehler eingebaut habe.
Hier noch meine alte paint Methode mit der es funktioniert hat.
Code:
public void paint(Graphics g){
super.paint(g);
g.drawImage(block,Main.player.position_y-3,Main.player.position_x-3, null);
g.drawImage(block,Main.computer.position_y-3,Main.computer.position_x-3, null);
g.drawImage(ball, Main.ball.position_y -5,Main.ball.position_x -5, null);
if(Main.game_switch == false){
if(Main.menu_switch == true){
g.drawImage(menu1,203,150, null);
}else{
g.drawImage(menu2,203,150, null);
}
}
}