Hallo liebe Leute ich habe nun mein erstes 2D Spiel fast fertig. Dies läuft soweit sehr flüssig, jedoch ist meine Prozessorauslastung bei 80% und bei alten PCs braucht es 40sec bis der Hintergrund aufgebaut wird. Ich verwende bisher png und für den Hintergrund jpg. Diese werden dann als BuffererdImage gespeichert und über die paintComponent Methode gezeichnet. Liegt dieser krasse Performance Unterschied daran, dass die alten PCs vllt nicht die neuste Java Version haben und somit auch keine Hardwarebeschleunigung. Ich zeig euch mal meine Methoden die ich benötige, um die Bilder zeichnen zu können:
und:
Und ist BufferedImage hier schon angebracht oder wäre hier ManagedImage oder VolatileImage die bessere Wahl?
Danke an alle die mir helfen können.
Java:
private BufferedImage[] LadeBilder(String Pfad, int Bilder){
BufferedImage[] animation = new BufferedImage[Bilder];
BufferedImage source = null;
URL Hole_url = getClass().getClassLoader().getResource(Pfad);
try {
source = ImageIO.read(Hole_url);
}
catch (IOException e){}
for(int i = 0;i < Bilder;i++){
animation[i] = source.getSubimage(i*source.getWidth()/Bilder, 0, source.getWidth()/Bilder, source.getHeight());
}
return animation;
}
und:
Java:
public void paintComponent(Graphics g){
super.paintComponent(g);
g.drawImage(Hintergrund, 0, 0, this);
g.drawImage(Korb, o, 710,this);
for(int i = 1; i <= 43; i++){
g.drawImage(Apfel, koords[i].x, koords[i].y, this);
}
g.setColor(Color.red);
g.setFont(new Font("Arial", Font.PLAIN, 30));
g.drawString("Punkte: " + Long.toString(punkte), 530, 35);
g.drawString("Zeit: " + Long.toString(30 - timer.Zeit()), 15, 35);
}
Und ist BufferedImage hier schon angebracht oder wäre hier ManagedImage oder VolatileImage die bessere Wahl?
Danke an alle die mir helfen können.