Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Mcphil
Anmeldungsdatum: 15.06.2005 Beiträge: 2
|
Verfasst am: 16.06.2005, 20:55 Titel: z.b. sleep weniger als 1 sekunde machen |
|
|
Hi Leute!
Ich programmiere gerade an einem Spiel, und hätte gerne, dass das sleep weniger als 1 sekunde andauert! Wie geht denn das???  |
|
Nach oben |
|
 |
Michael712 aka anfänger, programmierer
Anmeldungsdatum: 26.03.2005 Beiträge: 1593
|
Verfasst am: 16.06.2005, 21:24 Titel: |
|
|
Soweit ich weiß geht sleep nur ab einer sek. Ich kenne noch 2 weitere Varianten, die du verwenden kannst:
Code: |
start=TIMER
DO: LOOP UNTIL TIMER > start + wartezeit 'wartezeit= Zeit zum warten in sek.
'oder
For i%= 1 to wartezeit 'wartezeit = Zeit zum warten in 1/70 sek. *
wait &H3DA,8 'ACHTUNG: richtig eintippen. Ich hab mal &H[color=red]E[/color]DA,8 eingetippt und konnte neustarten(reset) -->prog war weg.
wait &H3DA,8,8
Next i%
|
* kann je nach Bldwiederholfrequenz abweichen. Mit wait &H3da,8(, wartet man, bis der Zeilenschreiber im Bildschirm an Position 1 ist. Für eine sek. bei einer Bildschirmwiederholfrequenz von 70 muss wartezeit=70 sein. Damit kann man sehr kurze wartezeiten machen. Mit TIMER(1.Beispiel) gehts nur bis 52msec(oder in dem bereich).
Ich hoffe, ich konnte dir helfen.
Mfg
Michael
P.S.: 600 Thema in diesem Unterforum  |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 17.06.2005, 21:09 Titel: |
|
|
Achtung, beides entHÄlt noch schönheits-fehler!
zu 1) schreib lieber
start=TIMER
DO: LOOP UNTIL TIMER > start + wartezeit or TIMER < start
für Programme, die vor mitternacht die delay starten und nach mitternacht aufhören!!!
zu 2) Achtung! Geht nur auf 70Hz, wenn VGA-Vollbildmodus! Im Fenster geht's nicht! _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
jb

Anmeldungsdatum: 14.01.2005 Beiträge: 2010
|
Verfasst am: 19.06.2005, 20:11 Titel: |
|
|
Oder du verwendest freeBASIC, da ist SLEEP 1 = 1 ms.
jb |
|
Nach oben |
|
 |
Triton

Anmeldungsdatum: 10.09.2004 Beiträge: 155 Wohnort: Berlin
|
Verfasst am: 20.06.2005, 15:28 Titel: |
|
|
- lass den computer 1 sekunde eine Schleife durchlaufen
- Angenommen, er schafft in dieser sekunde 1000 durchläufe - dann musst du in zukunft für eine halbe Sekunde Wartezeit 500 durchläufe einer Schleife machen.
Da die meisten Computer weit mehr als 1000 durchläufe schaffen, kann man damit auch theorietisch viel kleinere Delays als 1 ms erzeugen. _________________ Coding: silizium-net.de | Portfolio: Triton.ch.vu |
|
Nach oben |
|
 |
jb

Anmeldungsdatum: 14.01.2005 Beiträge: 2010
|
Verfasst am: 20.06.2005, 15:31 Titel: |
|
|
Das Problem dabei ist nur, dass im DOS-Fenster (vor allem unter Windows XP)
zum Teil extreme Geschwindigkeitsschwankungen auftreten.
jb |
|
Nach oben |
|
 |
|