Hatte vor ein paar Monaten das Problem schon einmal.
Damals wusste keiner eine Lösung, und habe das Projekt deshalb pausiert.
Hab jetzt wieder mal ein neues angefangen, und plötzlich wieder das selbe Problem. Meine javaw.exe lastet dem Kern auf dem sie rennt voll aus.
Eventuell findet jemand jetzt eine Lösung?
Zuerst einmal die simple Paint-Methode der Frame-Klasse:
paint ist vom Typ Paint und wird im Konstruktor der Klasse initialisiert.
Dann die Klasse Paint.java:
Zuerst einmal wird ihr beim intialisieren die Klasse Main.java und MainFrame.java übergeben.
Main führt Standartarbeiten durch (z. B. lesen von Files), hält einen großen Teil der globalen Variablen und eben son Zeug.
MainFrame ist natürlich das Frame.
Und zu guter letzt ein Thread:
Dieser wird einfach vom Frame gestartet und sorgt für ständiges Repainten.
Findet jemand dem Fehler?
Damals wusste keiner eine Lösung, und habe das Projekt deshalb pausiert.
Hab jetzt wieder mal ein neues angefangen, und plötzlich wieder das selbe Problem. Meine javaw.exe lastet dem Kern auf dem sie rennt voll aus.
Eventuell findet jemand jetzt eine Lösung?
Zuerst einmal die simple Paint-Methode der Frame-Klasse:
Java:
public void paint(java.awt.Graphics g)
{
this.paint.run(g);
}
paint ist vom Typ Paint und wird im Konstruktor der Klasse initialisiert.
Dann die Klasse Paint.java:
Java:
package core;
public class Paint
{
private core.Main main;
private core.MainFrame mainframe;
public Paint(core.MainFrame mainframe, core.Main main)
{
this.main = main;
this.mainframe = mainframe;
}
public void run(java.awt.Graphics g)
{
this.paintTerrain(g);
this.paintPlayer(g);
}
private void paintTerrain(java.awt.Graphics g)
{
int x = 0;
int y = 0;
java.util.HashMap<String, Terrain> terrainmap = main.getTerrainmap();
for(int i = 0; i < 16; i++)
{
for(int j = 0; j < 16; j++)
{
g.drawImage(terrainmap.get(x + "|" + y).getImage(), x * 36 + 3, y * 36 + 23, this.mainframe);
x++;
}
x = 0;
y++;
}
}
private void paintPlayer(java.awt.Graphics g)
{
core.Player player = this.main.getPlayer();
g.drawImage(player.getImage(), player.getPosX(), player.getPosY(), this.mainframe);
}
}
Zuerst einmal wird ihr beim intialisieren die Klasse Main.java und MainFrame.java übergeben.
Main führt Standartarbeiten durch (z. B. lesen von Files), hält einen großen Teil der globalen Variablen und eben son Zeug.
MainFrame ist natürlich das Frame.
Und zu guter letzt ein Thread:
Java:
package core;
public class Repaint extends Thread
{
private final int fps = 33;
private core.MainFrame mainframe;
public Repaint(core.MainFrame mainframe)
{
this.mainframe = mainframe;
}
public void run()
{
while(true)
{
try
{
this.mainframe.repaint();
Thread.sleep(1000 / fps);
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
}
Dieser wird einfach vom Frame gestartet und sorgt für ständiges Repainten.
Findet jemand dem Fehler?