Hallo,
nochmal auf die 100% CPU- Auslastung zurückzukommen. Ich habe es mal mit meiner Schleife probiert, also hab sie laufen lassen und gleichzeitig den Taskmanager. Sofort geht die Auslastung auch hoch auf 100%.
Da ich es aber genau wissen wollte, hab ich das gleiche mal mit professionellen Spielen überprüft. Und siehe da, ebenfalls eine 100% CPU- Auslastung. Daraus schließe ich, das es der CPU mehr oder weniger egal ist,
was oder wieviel innerhalb einer Gameloop abgearbeitet wird. Maßgebend ist anscheinend wohl, daß das Programm, während die Schleife läuft, sich halt nicht im Leerlauf befindet, und eben das treibt die Auslastung in die Höhe.
In einem Buch über Spieleprogrammierung, daß ich zufällig mal in die Hände bekam, wird eine Gameloop beschrieben, die auch auf einer while-Schleife basiert und solange endlos durchläuft, bis eine bestimmte Situation und/oder Nachricht eintritt.
Also kann meiner Meinung nach eine Gameloop, die mit einer while-Schleife realisiert wird, zumindestens nicht ganz falsch oder schlecht sein. Natürlich ist es zwingend notwendig, eine künstliche Bremse in Form einer Frameratenbegrenzung
einzubauen. Der Performance-Counter(Hardwarebaustein) ist dafür das absolut genaueste. Bei meinem Programm werde ich es jedoch anders versuchen, so nach der Art : aktuelle_zeit : TDateTime / aktuelle_zeit := Now / DecodeTime(aktuelle_zeit, stunde, minute, sekunde, millisekunde),
wobei für mich nur die millisekunde interessant ist. Mal sehen, ob ich das damit überhaupt so hinbekomme, wie ich es mir vorstelle.