N
nicht_der_erste_Noob
Gast
Also, hi erstmal.
Ich hab folgendes Problem, wenn ich die übliche doppelbufferung verwende um das bildschirmflackern wegzubekommen erscheinen bei mir folgende 3 error:
BallbewegungDoppel.java:73: incompatible types
found : java.awt.Image
required: Image
dbImage = createImage (this.getSize().width, this.getSize().height);
^
BallbewegungDoppel.java:74: cannot find symbol
symbol : method getGraphics()
location: class Image
dbg = dbImage.getGraphics ();
^
BallbewegungDoppel.java:86: cannot find symbol
symbol : method drawImage(Image,int,int,BallbewegungDoppel)
location: class java.awt.Graphics
g.drawImage (dbImage, 0, 0, this);
^
3 errors
Es ist egal welches doppelbufferungsbeispiel ich austeste immer diesselben 3 Fehler, hier als Beispiel:
von der Seite: http://www.javacooperation.gmxhome.de/BildschirmflackernDeu.html
(erzeugt roten ball der sich von links nach rechts bewegt auf blauen hintergrund)
Ich hab folgendes Problem, wenn ich die übliche doppelbufferung verwende um das bildschirmflackern wegzubekommen erscheinen bei mir folgende 3 error:
BallbewegungDoppel.java:73: incompatible types
found : java.awt.Image
required: Image
dbImage = createImage (this.getSize().width, this.getSize().height);
^
BallbewegungDoppel.java:74: cannot find symbol
symbol : method getGraphics()
location: class Image
dbg = dbImage.getGraphics ();
^
BallbewegungDoppel.java:86: cannot find symbol
symbol : method drawImage(Image,int,int,BallbewegungDoppel)
location: class java.awt.Graphics
g.drawImage (dbImage, 0, 0, this);
^
3 errors
Es ist egal welches doppelbufferungsbeispiel ich austeste immer diesselben 3 Fehler, hier als Beispiel:
von der Seite: http://www.javacooperation.gmxhome.de/BildschirmflackernDeu.html
(erzeugt roten ball der sich von links nach rechts bewegt auf blauen hintergrund)
Code:
import java.applet.*;
import java.awt.*;
public class BallbewegungDoppel extends Applet implements Runnable
{
// Initialisierung der Variablen
int x_pos = 10; // x - Position des Balles
int y_pos = 100; // y - Position des Balles
int radius = 20; // Radius des Balles
// Variablen für die Doppelpufferung
private Image dbImage;
private Graphics dbg;
public void init()
{
setBackground (Color.blue);
}
public void start ()
{
// Schaffen eines neuen Threads, in dem das Spiel läuft
Thread th = new Thread (this);
// Starten des Threads
th.start ();
}
public void stop()
{
}
public void destroy()
{
}
public void run ()
{
// Erniedrigen der ThreadPriority um zeichnen zu erleichtern
Thread.currentThread().setPriority(Thread.MIN_PRIORITY);
// Solange true ist läuft der Thread weiter
while (true)
{
// Verändern der x- Koordinate
x_pos ++;
// Neuzeichnen des Applets
repaint();
try
{
// Stoppen des Threads für in Klammern angegebene Millisekunden
Thread.sleep (20);
}
catch (InterruptedException ex)
{
// do nothing
}
// Zurücksetzen der ThreadPriority auf Maximalwert
Thread.currentThread().setPriority(Thread.MAX_PRIORITY);
}
}
/** Update - Methode, Realisierung der Doppelpufferung zur Reduzierung des Bildschirmflackerns */
public void update (Graphics g)
{
// Initialisierung des DoubleBuffers
if (dbImage == null)
{
dbImage = createImage (this.getSize().width, this.getSize().height);
dbg = dbImage.getGraphics ();
}
// Bildschirm im Hintergrund löschen
dbg.setColor (getBackground ());
dbg.fillRect (0, 0, this.getSize().width, this.getSize().height);
// Auf gelöschten Hintergrund Vordergrund zeichnen
dbg.setColor (getForeground());
paint (dbg);
// Nun fertig gezeichnetes Bild Offscreen auf dem richtigen Bildschirm anzeigen
g.drawImage (dbImage, 0, 0, this);
}
public void paint (Graphics g)
{
g.setColor (Color.red);
g.fillOval (x_pos - radius, y_pos - radius, 2 * radius, 2 * radius);
}
}
[code=Java]
mfg ich