Webraid's Blog » Von Prozessoren und negativen Zeiten


Von Prozessoren und negativen Zeiten

Ein Spiel, was dem ganzen System die gesamten CPU – Ressourcen klaut, ist schlecht. Das Spiel sollte keinesfalls die ganze Zeit bei 99% laufen. Nun ja, dies passiert aber bei einer Endlosschleife nun mal. Das System nimmt sich alle Ressourcen.

Prinzipiell ja kein Problem. Immerhin bietet Java mit seiner Thread.sleep Methode einen edlen Ausweg. Nun ja, eingebaut und immernoch 99% Auslastung, sowie braucht die Paint Methode plötzlich merkwürdig lange…
Doch man sollte als Entwickler schon richtig rechnen könnnen….

Denn jetzt wird es peinlich. Ein Befehl wie Thread.sleep((lastLoopTime-System.nanoTime)/1000) könnte da ein wenig zu Problemen führen, weil die Zahl natürlich immer negativ ist. Andersrum wäre es richtig.

long ende=System.nanoTime();
long diff=(ende-lastLoopTime)/1000+10;

diff=(diff>1000)?1000:diff;
try
{
Thread.sleep(diff);
}
catch(Exception e)
{

System.out.println(„Thread out)“;
}

Peinlich, peinlich, aber auch lustig, was man für dumme Fehler macht.

Aktueller Status

  • Spielinitalisierung werden richtig durchgeführt
  • Gesteuert wird über Tastatur Eingaben
  • Positionsverzerrungen bei unterschiedlichen Screen-Auflösungen werden korrekt korrigiert