Hallo erstmal
Ich versuche mich jetzt seit langem mal wieder mit Java und habe mir als Motivation mal vorgenommen ein kleines Minispiel zu schreiben, in dem man halt rumlaufen kann und so
Das ganze soll grafisch ziemlich unaufwendig sein, also nur praktisch mit Rectangles und so zumindest vorerst gezeichnet werden...
Dazu habe ich wie schon oft beschrieben ein Panel erstellt und PaintComponent überschrieben usw., mein Problem ist jetzt dass es zwar auch eigentlich schön funktioniert, allerdings ruckelt das ganze etwas unschön, es kann aber eigentlich kaum an meiner Hardware liegen, denn auf der läuft unter Windows selbst GTA IV ohne solche Framedrops wie hier :/
Ich habe auch schon versucht am Timerintervall zu drehen der "repaint();" aufruft, das ändert gar nichts und auch der Timer der den Kreis bewegt (welcher die Spielfigur darstellt) kann so schnell gestellt sein wie es geht und es ruckelt trotzdem...
Das hier ist übrigends der Code der dafür relevant sein sollte:
Ist vllt. Swing gar nicht für sowas ausgelegt? Also für ca. 30 mal neuzeichnen pro Sekunde o.ä.? Wenn ja, was gibt es dann für bessere Alternativen dafür? oO
Ich hoffe mal jemand weiß Rat :S
MfG
Tjong
Ich versuche mich jetzt seit langem mal wieder mit Java und habe mir als Motivation mal vorgenommen ein kleines Minispiel zu schreiben, in dem man halt rumlaufen kann und so
Das ganze soll grafisch ziemlich unaufwendig sein, also nur praktisch mit Rectangles und so zumindest vorerst gezeichnet werden...
Dazu habe ich wie schon oft beschrieben ein Panel erstellt und PaintComponent überschrieben usw., mein Problem ist jetzt dass es zwar auch eigentlich schön funktioniert, allerdings ruckelt das ganze etwas unschön, es kann aber eigentlich kaum an meiner Hardware liegen, denn auf der läuft unter Windows selbst GTA IV ohne solche Framedrops wie hier :/
Ich habe auch schon versucht am Timerintervall zu drehen der "repaint();" aufruft, das ändert gar nichts und auch der Timer der den Kreis bewegt (welcher die Spielfigur darstellt) kann so schnell gestellt sein wie es geht und es ruckelt trotzdem...
Das hier ist übrigends der Code der dafür relevant sein sollte:
Java:
public GraphicOutput ()
{
gMainWindow = new JFrame("Spiel");
gMainWindow.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
gMainWindow.setPreferredSize(new Dimension(SCREENWIDTH, SCREENHEIGHT));
gMainPanel = new JPanel() {
private static final long serialVersionUID = 1L;
public void paintComponent(Graphics g)
{
super.paintComponent(g);
gMainGraphics = (Graphics2D) g;
updateScreen();
}
};
gMainWindow.setContentPane(gMainPanel);
gMainWindow.pack();
gMainWindow.setVisible(true);
Timer timer = new Timer ( ) ;
//timer.scheduleAtFixedRate(new RefreshScreen(), 0, (int)(1000/Settings.FRAMES_PER_SECOND));
timer.schedule(new RefreshScreen(), 0, (int)(1000/Settings.FRAMES_PER_SECOND));
}
public void updateScreen ()
{
gMainGraphics.fillOval(Math.round(gMainPlayer.Position[0]+SCREEN_CENTER_X-10),
Math.round(gMainPlayer.Position[1]+SCREEN_CENTER_Y-10), 20, 20);
}
class RefreshScreen extends TimerTask {
public void run() {
gMainPanel.repaint();
}
}
Ich hoffe mal jemand weiß Rat :S
MfG
Tjong