Hallo! Ich habe ein Problem! ich habe ein Ball und ein Balken die sich bewegen! aber es flimmert! ich soll es mit double buffering machen aber ich habs seit tagen probiert krieg es aber nicht hin! bitte um hilfe!!
Code:
import java.awt.*;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class lol extends Frame implements KeyListener{
Canvas cv;
Graphics g;
boolean lol= true;
boolean weiter= true;
int x=500, y=400,y1=2,x1=2;
int yPos=680;
int xPos=350;
int hoehe=15;
int breite=150;
public lol(){
super("wallbreaker");
setSize(1000,800);
cv = new Canvas();
cv.setSize(900,750);
cv.setBackground(new Color(200,200,255));
add(cv);
addKeyListener(this);
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent arg0){
System.exit(0);
}
});
}
public void zeichnen(){
Graphics g;
g=cv.getGraphics();
Image img2 = getToolkit().getImage("back.jpg");
MediaTracker mt2 = new MediaTracker(this);
mt2.addImage(img2, 0);
try {
mt2.waitForAll();
} catch (InterruptedException e) {
}
g.drawImage(img2,0,0,this);
g.fillRect(xPos,yPos,breite,hoehe);
}
public void run(){
g=cv.getGraphics();
while(weiter){
if(x>=cv.getWidth()-10||x<=0){
x1=-x1;
}
if(y>=cv.getHeight()-10||y<=0){
y1=-y1;
}
x=x+x1;
y=y+y1;
g.fillOval(x,y,10,10);
try{
Thread.sleep(10);
}
catch(InterruptedException h){}
zeichnen();
}
}
public void keyPressed(KeyEvent event)
{
if (event.getKeyCode() == KeyEvent.VK_LEFT) {
if(xPos<=15){
xPos=15;
}
g.setColor(Color.BLACK);
xPos=xPos-10;
g.fillRect(xPos,yPos,breite,hoehe);
}if (event.getKeyCode() == KeyEvent.VK_RIGHT) {
if(xPos>=825){
xPos=825;}
g.setColor(Color.BLACK);
xPos=xPos+10;
g.fillRect(xPos,yPos,breite,hoehe);
}
}
public void keyReleased(KeyEvent event){}
public void keyTyped(KeyEvent event){}
public static void main(String[] args) {
lol f = new lol();
f.show();
f.zeichnen();
f.run();
}
}