Hallo,
ich bastele gerade an einem Spiel.
Da es auf Grund der vielen Sprites zum Flackern kommt, wollte ich mit BufferStrategy ein Page-Flipping machen.
Nur leider scheinen meine Bemühungen nicht von Erfolg gekrönt zu sein.
Der folgende Code ist mein Testcode.
Er erzeugt aber keine neuen Bilder und ich weiß nicht mehr weiter, wo der Fehler noch liegen könnte.
Vielleicht kann mir ja jemand auf die Sprünge helfen?
Danke
mfg
System.exit(0)
ich bastele gerade an einem Spiel.
Da es auf Grund der vielen Sprites zum Flackern kommt, wollte ich mit BufferStrategy ein Page-Flipping machen.
Nur leider scheinen meine Bemühungen nicht von Erfolg gekrönt zu sein.
Der folgende Code ist mein Testcode.
Er erzeugt aber keine neuen Bilder und ich weiß nicht mehr weiter, wo der Fehler noch liegen könnte.
Vielleicht kann mir ja jemand auf die Sprünge helfen?
Danke
mfg
System.exit(0)
Java:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package applet_test;
import java.applet.Applet;
import java.awt.Canvas;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.image.BufferStrategy;
import java.util.Locale;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JApplet;
/**
*
* @author Markus
*/
public class MyApplet extends JApplet implements Runnable
{
private Canvas DrawArea;
BufferStrategy BF;
private int index;
public void init()
{
this.setSize(800,600);
this.setVisible(true);
DrawArea = new Canvas();
DrawArea.setSize(800,600);
DrawArea.setLocation(0,0);
DrawArea.setVisible(true);
this.add(DrawArea);
DrawArea.createBufferStrategy(2);
BF = DrawArea.getBufferStrategy();
index = 0;
Thread myT = new Thread(this);
myT.start();
}
public void paint (Graphics G)
{
drawStuff(G);
}
public void drawStuff(Graphics DA)
{
System.out.println("bla");
DrawArea.setBackground(Color.black);
switch(index % 4)
{
case 0: DA.setColor(Color.yellow);
case 1: DA.setColor(Color.green);
case 2: DA.setColor(Color.red);
case 3: DA.setColor(Color.blue);
}
DA.fillRect(0,0,800,600);
for (int i = 0; i <50; i ++)
{
for (int j = 0; j < 50; i++)
DA.fillOval(i*10, j*10, 6, 3);
}
BF.show();
}
public void run()
{
index = 0;
for (int i= 0;i < 20; i++)
{
System.out.println("test" + i);
index ++;
Graphics G = BF.getDrawGraphics();
drawStuff(G);
System.out.println("test" + i);
try {
Thread.sleep(250);
} catch (InterruptedException ex) {
Logger.getLogger(MyApplet.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
}