Ich will euch in diesem kurzen "Tutorial" zeigen, wie man in frameunabhängig programmiert.
Wofür ist das gut?
Frameunabhängiges Programmieren sorgt dafür, dass eure Programm auf allen Rechner gleich schnell laufen. Natürlich läuft es nicht wirklich gleichschnell.
Der Trick ist ganz einfach. Man ermittelt die Zeit nach dem windowsstart am Anfang der Schleife. Am Ende ermittelt man ihn nochmal und speichert die Differenz vom neuen Wert und vom alten Wert in eine Variable. Wenn man nun zum Beispiel in einem Spiel sein Auto um 1 LE auf der x-Achse bewegen will, schreibt man:
MoveMesh(car,1*differenz,y,z).
Hier ein Beispiel:
Code: Alles auswählen
OpenConsole()
Repeat
times=gettickcount_()
;Delay(2000)
a=a+1*time
PrintN(Str(a))
time=gettickcount_()-times
ForEver
CloseConsole()
Falls ihr es wirklich testen wollt, dann kompiliert den code ohne "Delay(2000)" und einmal mit "Delay(2000)" und ihr werdet sehen..
In Spielen, vor allem in Online-Spielen, sollte man IMMER frameunabhängig programmieren!
Viele denken:"Ach was, muss nicht sein". Muss wohl sein. Wenn man in seinem Spiel eine Zeit programmiert, mit der bestimmte Sachen im Spiel passieren sollen, kann es dann zu ernsthaften Problemen führen.
Edit:
Hier noch ein "Zeit"-Beispiel:
Code: Alles auswählen
OpenConsole()
Repeat
times=gettickcount_()
;delay(2000)
a=a+1*time
If(Str(a/1000)<>la.s)
PrintN(Str(a/1000))
la.s=Str(a/1000)
EndIf
time=gettickcount_()-times
ForEver
CloseConsole()