Millisecs() funzt in einer For-Next Schleife nicht !

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

BB-Freak

Betreff: Millisecs() funzt in einer For-Next Schleife nicht !

BeitragFr, Jul 30, 2010 9:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Hir mal ein Ausschnitt aus meinem Code:
Code: [AUSKLAPPEN]

 If RectsOverlap(slotInventar\x,slotInventar\y,37,28,MouseX(),MouseY(),1,1) And slotInventar\ItemId>0 Then
  If MilliSecs() > tmrManzeige + 5000 Then
   Color 200,200,200
   Rect slotInventar\x+25,slotInventar\y-45,60,60,0
   Color 20,20,20
   Rect slotInventar\x+26,slotInventar\y-44,58,58,1
   Color 200,200,200
   SetFont Font_C

    blablabla....

   trmManzeige=MilliSecs()
  EndIf

Leider wartet der da garnicht es wird sofort ein Rechteck gemalt Confused .
Liegt das daran, dass es in einer For-Next Schleife einfach nicht funktioniert Confused ?
Oder hab ich was falsch gemacht Rolling Eyes ?

Hubsi

BeitragFr, Jul 30, 2010 10:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Weist Du dem tmrManzeige vor der Kollisionsprüfung (vor der Schleife) reglemäßig den aktuellen Wert von MilliSecs() zu? Dann sollte es funktionieren.
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...

Midimaster

BeitragSa, Jul 31, 2010 8:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Also..leider ist in deinem Code-Beispiel gar keine FOR/NEXT-Schleife zu sehen...

Aber:

Millisecs() ist natürlich beim 1.Mal sowieso größer als tmrManzeige% (ist ja 0 zu Beginn). Dadurch wird gleich beim 1.Mal ein Rechteck gemalt und dann wieder nach 5000msec.

Willst Du das verhindern, dann sollte am Anfang deines Programmes einmal stehen:

BlitzBasic: [AUSKLAPPEN]
trmManzeige=MilliSecs()


Übrigens ist es so herum viel schlauer:

BlitzBasic: [AUSKLAPPEN]
trmManzeige=MilliSecs()+8000
...blabla
For...
If MilliSecs() > tmrManzeige Then
Rect...
blabla...
trmManzeige=MilliSecs()+5000
EndIf
Next
...


Auf diese Weise könntest Du das erste Mal eine längere Wartezeit erreichen. Oder aber du könntest auch mitten im Spiel trmManzeige% variieren. z.b. dass manchmal das RECT plötzlich sofort kommt. Dazu müsstest du nur...

BlitzBasic: [AUSKLAPPEN]
trmManzeige=MilliSecs()-1


...setzen.

BB-Freak

BeitragSa, Jul 31, 2010 16:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke hat mir sehr geholfen Wink .

Die For-Next schleife habe ich bewusst raus gemacht weil in ihr wesentlich mehr steht als du hir siehst Rolling Eyes .

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group