Schnelligkeit

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

Chester

Betreff: Schnelligkeit

BeitragSa, Nov 13, 2004 21:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi@all

so nun läuft, das auf allen Computer gleich schnell?



Code: [AUSKLAPPEN]

Graphics 800,600,32,1


SetBuffer BackBuffer()

While Not KeyHit(1)
If MilliSecs()>Timer+20 Then



Cls


Flip
Timer=MilliSecs()
EndIf
Wend

EndGraphics
End

eXceptION

BeitragSa, Nov 13, 2004 21:52
Antworten mit Zitat
Benutzer-Profile anzeigen
hi, habe leider nur einen rechner hier, so es ist unnsinn zu testen...

ich nehme aber an, doch... Wink
Norweger...

Spreche aber verdammt gut 8086

stfighter01

BeitragSa, Nov 13, 2004 21:59
Antworten mit Zitat
Benutzer-Profile anzeigen
nein, tut es nicht.

das

timer= millisecs()

muss VOR dem flip befehl stehen.
noch besser gleich direkt nach der if abfrage.


mfg stfighter
Denken hilft!

eXceptION

BeitragSa, Nov 13, 2004 22:03
Antworten mit Zitat
Benutzer-Profile anzeigen
flip() tut nur eine sache... wechselt zwischen zwei (oder drei bei z.b. tripplebuffering) 32bit werten...

also benutzt es fast kein cpu-time...
Norweger...

Spreche aber verdammt gut 8086

stfighter01

BeitragSa, Nov 13, 2004 22:09
Antworten mit Zitat
Benutzer-Profile anzeigen
flip tut 2 sachen.

wartet auf die vertikale sync des bildschirmes und wechselt DANN erst zwischen front u. backbuffer um einen zerstückelten bildschirm zu verhindern.

im normalfall kostet das so 10- 15ms rechenzeit.

ausnahme " flip 0 "

mfg stfighter
Denken hilft!

eXceptION

BeitragSa, Nov 13, 2004 22:17
Antworten mit Zitat
Benutzer-Profile anzeigen
stfighter01 hat Folgendes geschrieben:
wartet auf die vertikale sync
da hast du völlig recht, ich habe es einfach ausgelassen... Wink
Norweger...

Spreche aber verdammt gut 8086

D2006

Administrator

BeitragSo, Nov 14, 2004 0:22
Antworten mit Zitat
Benutzer-Profile anzeigen
außerdem läuft es auf Rechnern, die für einen Durchlauf 50 Millisekunden brauchen, beträchtlich langsamer.

Hier könnte man mit frameunabhängigen Zeugs noch halbwegs was rausholen. Allerdings hauen dann Dinge wie Kollision nicht mehr hin und ich bin der Auffassung, dass es halt Spiele gibt, die eine bestimmte
Schnelligkeit des Rechners vorraussetzten können. Kann sein, dass die bei einem B3D Spiel mal schnel bei nem P3 mit 500 MHz liegt. Aber wer hat noch so einen PC und die ernsthafte Absicht, ein 3D Spiel zu spielen. (keine Kommentare erwünscht).

Alles in allem kann man diese Methode also durchgehen lassen.

MfG
D2006

eXceptION

BeitragSo, Nov 14, 2004 0:29
Antworten mit Zitat
Benutzer-Profile anzeigen
du sollst immer das ganze game logik jede mainloop durchlauf durchführen... aber du kannst es so machen:

1. mäss wie viel zeit zeichnen bedarf
2. game logic soll nun so viele mal (ohne zeichnen) durchlaufen wie beim zeichnen verpasst hat

da hast du konstante FPS... siehe castle.bb in demo verzeichnis, und hole dir die kode raus (wenn es um 3D geht)
Norweger...

Spreche aber verdammt gut 8086

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group