Funktionssperrung für eine betimmte Zeit
-
Hi,
mein Problem ist, dass ich von Zeit in C++ null Ahnung hab, in meinem Lehrbuch stand einfach nichts drin und mit den tuts im net kann ich nich viel anfangen.
Ich bin aber grad dabei ein kleines Spiel zu programmieren, und ich möchte, dass man mit einer Pistole nicht wie mit einem Maschienengewehr rumlaufen kann, also ich muss die Funktion schießen für z.b. 0,5 sek. sperren, wie stell ich das mit den 0,5 sek. an???P.S.: wie kann ich bei rand() die Zahlen "mischen"?
-
du drueckst dich zwar sehr unklar aus, aber vielleicht meinst du std::random_shuffle aus algorithm, damit kannst du zahlen mischen.
wo ist das problem mit dem schiessen? du merkst dir, wann das letzte mal geschossen wurde und laesst es erst wieder zu, wenn eine bestimmte zeit um ist. oder weisst du nicht wie du an die zeit kommst? time_t now = time(NULL); solle es tun.
-
Danke, genau das war mein Problem. Ich denk, jetzt müsste ich klarkommen.
-
Da schließ ich mal eben meine Frage an!
Für ein Projekt habe ich nämlich auch mal sowas geschrieben.
Das sah dann wie folgt aus:void CWetterstation::SetDeelay() { iDeelay = (unsigned)time(NULL); } void CWetterstation::Deelay(unsigned int iSekunden) { while((time(NULL)-iDeelay)<iSekunden); }
wobei iDeelay eine private Variable der Klasse war.
Allerdings geht es so halt nur sekundenweise, gibts im standard auch noch genauere einheiten?PS: das programm war für DOS, die endlosschleife is also egal und ich weis das es besser geht