Hi ISAS, vor kurzem schon mal einen Thread aufgemacht, um dir zu antworten, der ist dann allerdins 'verloren' gegangen
Also hier noch mal die Antwort:
Einen Timer zu verwenden genügt nicht. Du musst die Zeit messen, die der Rechner benötigt, um ein Bild aufzubauen und diesen Faktor mit einberechnen.
Ein schneller Rechner zeigt dann mehr Zwischenbilder von Schritt A nach Schritt B an, ein langsamer Rechner zeigt weniger Zwischenbilder. Wie geanau du das aber in deinem Programm umsetzen kannst, kann ich dir leider nicht sagen. Aber vielleicht hilft dir der Tipp ein wenig weiter.
Dieses Buch hatte ich hier schon einmal im Forum zum Thema Spieleprogrammierung empfohlen:
3D-Spieleprogrammierung
David Scherfgen
Hanser Verlag
ISBN 3-446-22152-2
EUR 39,90
http://www.hanser.de/buch/2003/3-446-22152-2.htm
Hier wird auf dieses Problem eingegangen. Allerdings wird nicht in Pascal, sondern C++ programmiert und
DirectX verwendet. Ich denke, um ein Spiel zu programmieren ist das eine günstige Kombination.
Wenn du das Bild mit einem Timer gesteuert neu aufbaust, um den Spieler fortzubewegen (=> also das Bild in einem festen Intervall neu renderst), könnte es passieren, dass ein alter und langsamer Rechner das nicht schafft, während der neue Supercomputer eines Hardcore-Zockers bei weitem nicht ausgelastet ist, sein ganzes Potential also nicht ausspielen kann.
Allerdings kommt es auch auf das Spiel an, welchen Lösungsweg du wählst. Für ein 2D-Tetris ist es sicherlich übertrieben, eine riesen Engine zu schreiben. Bei einem anspruchsvollen Rollenspiel, solltes du dir hier aber einige Gedanken machen. Denn ein Rollenspiel erzeugt die Spielatmospähre nicht zuletzt durch eine saubere Grafik ...
Und immer Dran denken: Wer hohe Türme bauen will, muss lange beim Fundament verweilen!