Schleife erst nach Zeitabstand weiterführen[Done]
Übersicht BlitzBasic Beginners-Corner
GarikBetreff: Schleife erst nach Zeitabstand weiterführen[Done] |
Do, Jul 27, 2006 20:43 Antworten mit Zitat |
|
---|---|---|
Hi,
da ich das Problem selber nicht lösen konnte, werde ich euch mal um Rat fragen. Es geht um Folgendes: In folgendem Code will ich, dass die Teilchen nicht alle aufeinmal nach oben gehen, sondern dass ein ZEitabstand dazwischen ist. Im BlitzBasic-Buch von René Meyer hab ich erfahren, dass man mit der Funktion Millisecs() die zeitspanne errechnen kann, aber ich weiß noch nicht genau, wie ich das machen soll. Code: [AUSKLAPPEN] For a=0 To 99 teilchen(a,0)=Rand(600,650) ;zufällige X-Pos teilchen(a,1)=1024 ;Y-Pos teilchen(a,2)=Rand(1) ;0 für positives, 1 für negatives teilchen teilchen(a,3)=1 ;existiert Teilchen noch? Next (hier fängt die hauptschleife an) ........... For a=0 To 99 Anfang=MilliSecs() ;teilchen werden gezeichnet If teilchen(a,2)=0 And teilchen(a,3)=1 Then DrawImage positiv,teilchen(a,0),teilchen(a,2) End If If teilchen(a,2)=1 And teilchen(a,3)=1 Then DrawImage negativ,teilchen(a,0),teilchen(a,1) End If ;teilchen bewegem sich nach oben teilchen(a,1)=teilchen(a,1)-Geschw Ende=MilliSecs() Zeitspanne=Ende-Anfang (hier soll jetzt rein, dass die schleife erst weitergeführt wird, wenn eine sekunde vergangen ist) Next ......... (hier hört die hauptschleife auf) Danke im Voraus |
||
- Zuletzt bearbeitet von Garik am Sa, Jul 29, 2006 15:16, insgesamt einmal bearbeitet
KabelbinderSieger des WM-Contest 2006 |
Do, Jul 27, 2006 21:00 Antworten mit Zitat |
|
---|---|---|
If Zeitspanne<1000 Then Delay 1000-Zeitspanne | ||
<Wing Avenger Download> ◊◊◊ <Macrophage Download> |
JustTheBest |
Do, Jul 27, 2006 21:02 Antworten mit Zitat |
|
---|---|---|
Hi!
Code: [AUSKLAPPEN] ;genau vor der Hauptschleife: starttimer = Millisecs() ;In der Hauptschleife: Repeat Until Millisecs()-starttimer > 1000 starttimer = Millisecs() Müsste so klappen! EDIT: Mit Delay würde ichs persönlich, wens was größeres wird, nicht machen! mfg P.s.: Bayern hat morgen Ferienbeginn, und ich hatte heute keine Schule! OleeOleeOleeOleeee! |
||
www.mas-online.de.gg
__________ Liegt der Camper tot im Keller war der Rusher wieder schneller. Liegt der Rusher tot daneben hat der Camper nen Kollegen! |
SpionAtom |
Do, Jul 27, 2006 21:14 Antworten mit Zitat |
|
---|---|---|
Das klingt irgendwie nach einem Fall für WaitTimer(m)
Mach dich mal in der OH darüber schlau. |
||
os: Windows 10 Home cpu: Intel Core i7 6700K 4.00Ghz gpu: NVIDIA GeForce GTX 1080 |
KabelbinderSieger des WM-Contest 2006 |
Fr, Jul 28, 2006 19:29 Antworten mit Zitat |
|
---|---|---|
@ JustTheBest: Warum nicht? Garik möchte die Schleife doch >verzögern< deine Methode ist eigentlich nur eine Umschreibung des Delay-Befehls. | ||
<Wing Avenger Download> ◊◊◊ <Macrophage Download> |
Jolinah |
Fr, Jul 28, 2006 21:43 Antworten mit Zitat |
|
---|---|---|
Delay wäre in dem Fall eigentlich besser, weil es den Prozess unterbricht und sich dadurch die CPU-Auslastung des Programms sogar verringert
Du kannst auch 2 For-Schleifen machen, eine wird nur jede Sekunde ausgeführt und verschiebt die Teilchen nach oben, die andere Schleife wird immer ausgeführt und zeichnet die Teilchen: Code: [AUSKLAPPEN] start = millisecs() ;Hauptschleife des Programms Repeat If millisecs() - start > 1000 For a = 0 to 99 ;Teilchen um 1 hochsetzen Next start = millisecs() End If For a = 0 to 99 ;Teilchen zeichnen Next Until Keyhit(1) |
||
Garik |
Sa, Jul 29, 2006 15:16 Antworten mit Zitat |
|
---|---|---|
Danke für die Antworten, aber ich hatte mich falsch ausgedrückt, was mein Problem betraf. Dies ist aber nun schon gelöst dank einem anderen User. | ||
Übersicht BlitzBasic Beginners-Corner
Powered by phpBB © 2001 - 2006, phpBB Group