Hallo ich bins schon wieder
Ich hab ein Problem mit der Repaint()-Methode:
Anstatt, dass repaint einfach ein neues aktualisiertes Bild zeichnet, zeichnet repaint sozusagen das neue aktualisierte + das alte Bild.
Ich hab zum test in einer Update-Methode ein Viereck immer um x+1 und y+1 verschoben.
-> Anstatt dass sich das einzelne Rechteck verschiebt. gibt es eine Diagonale auf dem Bild.
Ich hab ein Problem mit der Repaint()-Methode:
Anstatt, dass repaint einfach ein neues aktualisiertes Bild zeichnet, zeichnet repaint sozusagen das neue aktualisierte + das alte Bild.
Ich hab zum test in einer Update-Methode ein Viereck immer um x+1 und y+1 verschoben.
-> Anstatt dass sich das einzelne Rechteck verschiebt. gibt es eine Diagonale auf dem Bild.
Java:
import java.awt.Graphics;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Spiel implements Runnable {
Data data;
Gui gui;
public final int fps = 60;
public final long maxLoop = 1000 / fps;
private boolean isRunning = true;
// Graphics g;
public Spiel(Data data) {
this.data = data;
Gui gui = new Gui(data);
this.gui = gui;
new Thread(this).start();
}
@Override
public void run() {
long oldTime;
long curTime;
while (isRunning) {
oldTime = System.currentTimeMillis();
update();
render();
curTime = System.currentTimeMillis();
if ((curTime - oldTime) > maxLoop) {
continue;
} else {
try {
Thread.sleep(maxLoop - (curTime - oldTime));
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
void update() {
data.setEx_X(data.getEx_X() + 1);
data.setEx_Y(data.getEx_Y() + 1);
System.out.println("X: " + data.getEx_X());
System.out.println("Y: " + data.getEx_Y());
}
public void render() {
System.out.println("Zeichne");
gui.repaint();
}
}
Java:
import java.awt.Graphics;
import javax.swing.JFrame;
public class Gui extends JFrame {
Data data;
public Gui(Data data) {
this.data = data;
setSize(500, 500);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
}
public void paint(Graphics g){
g.fillRect(data.getEx_X(), data.getEx_Y(), 100, 100);
}
}