Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

15.09.2008, 19:25

Am besten mit Zeit umgehen

Hallo,

ich habe folgendes Problem, und zwar möchte ich im Pseudo Code Styl sowas machen :

Nach20Sekunden->Befehlxyz()

wie ist das am besten zu realisieren ?
sollte ich eine Variable auf 2 setzen und dann immer die millisekunden die das Programm zum Rendern und berechnen brauch abziehen , und wenn die Zahl kleiner 0 wird den Befehl ausfürhren ?

Oder gibt es da eine elegantere Lösung


Greetz Unknown[/cpp]

2

15.09.2008, 19:27

Man könnte das auch mit Windows Timern realisieren, aber ob dies eine elegantere lösung ist, ist fragwürdig!

Das Gurke

Community-Fossil

Beiträge: 1 996

Wohnort: Pinneberg

Beruf: Schüler

  • Private Nachricht senden

3

15.09.2008, 19:28

Ohne Threads ist das wohl die eleganteste Lösung. Wenn man das nett in ner Timerklasse verpackt schauts auch gut aus ;)

Edit: Windowstiming == ungenau

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

4

15.09.2008, 19:37

Zitat von »"Das Gurke"«

Edit: Windowstiming == ungenau


Kommt halt auch drauf an was für eine Genauigkeit gefordert wird. Für den Normalfall sollte das sogar ausreichen. Im übrigen haben so ziemlich alle gängigen Zeitgeber so ihre Problemchen.
@D13_Dreinig

5

15.09.2008, 19:38

Jop, bis zu 4 sekunden unterschied innerhalb von einer Minute soweit ich weiß ..., aber Gurke hat schon echt, wenn man das ganze in einer netten Klasse verpackt sieht das ganze garnicht mal so schlecht aus!

6

15.09.2008, 19:43

Threads kommen nicht in Frage, da ich das nur einpaar mal machen möchte, das is zu viel aufwand.
Dann schreib ich eben ne Klasse :D

TrommlBomml

Community-Fossil

Beiträge: 2 117

Wohnort: Berlin

Beruf: Software-Entwickler

  • Private Nachricht senden

7

15.09.2008, 20:02

der performance counter bietet mehr als genug genauigkeit und ist ziemlich leicht zu benutzen.

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

8

15.09.2008, 20:07

Zitat von »"TrommlBomml"«

der performance counter bietet mehr als genug genauigkeit und ist ziemlich leicht zu benutzen.


Das stimmt, aber, je nach verwendetem Zeitgeber, hat auch diese API ihre Probleme und Maken.
@D13_Dreinig

9

15.09.2008, 20:12

Mir gehts auch net um nanosekunden Genauigkeit ;)
Wenn es das Wort überhaupt gibt, vllt zensiert das Forum das Wort ja -> rechtsschreibfehler ;) ( Insiderwitz xD )


Greetz Unknown

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

10

15.09.2008, 20:33

Was fürn Timer geeignet is hängt, wie schon gesagt, von den Anforderungen ab.
GetTickCount() und timeGetTime() haben normal ne Genauigkeit von um die 15-18 ms (die Auflösung von timeGetTime() kann man auf 1ms erhöhen). Wenn das reicht, würd ich einfach GetTickCount() nehmen. Is das einfachste. Der Performancecounter hat ne extrem hohe Auflösung, aber hat auch seine Macken. Dann gäbe es noch den Timestampcounter der CPU, aber der wird bei Multicore problematisch...

Hier mein Standardlink zum thema:

http://www.gamedev.net/reference/articles/article2086.asp

Werbeanzeige