Seite 1 von 1

Wert in einer Repeat/Forever mit Timerzeit ändern?

Verfasst: 22.06.2014 17:50
von funker
Hallo, guten Tag.
Ich möchte einen Wert in einer Repeat/Forever mit einer Timerzeit erhöhen.

Wie kann man das machen?
Mit Delay bremse ich mein Programm immer aus.

Danke.
Gruss

Re: Wert in einer Repeat/Forever mit Timerzeit ändern?

Verfasst: 22.06.2014 18:02
von Bisonte
Da brauchts schon irgendwie ein Beispiel....

Sonst kann man nur ein Lied trällern : "Ich weiß nicht, was soll es bedeuten...."

Re: Wert in einer Repeat/Forever mit Timerzeit ändern?

Verfasst: 22.06.2014 18:09
von STARGÅTE
funker hat geschrieben:Wie kann man das machen?
Mit AddWindowTimer()

Re: Wert in einer Repeat/Forever mit Timerzeit ändern?

Verfasst: 22.06.2014 19:19
von funker
Hallo, was unten zwischen if----------- und enfif------------ steht soll Zeitabhängig gemacht werden.

Danke.
Gruss

Code: Alles auswählen

Repeat
  Event = WaitWindowEvent(1)   
  
  ExamineKeyboard()
  result=KeyboardInkey()
  
  Select Event
    Case #PB_Event_Gadget
      EventGadget = EventGadget()
      EventType = EventType()
      
      If EventGadget = #b_seriell_an 
        If port=-1
          port=OpenSerialPort(#PB_Any, "COM4", 9600, #PB_SerialPort_NoParity, 8, 1, #PB_SerialPort_NoHandshake, 1024,1024)
          If port
            text_s=""
            text_s + "...geöffnet   "+Str(port)
            SetGadgetText(#str_seriell, text_s)
          Else
            text_s=""
            text_s + "...nichts"
            SetGadgetText(#str_seriell, text_s) 
            port=-1
          EndIf
        EndIf  
      EndIf
      
      If EventGadget = #b_seriell_aus 
        If port > 0
          CloseSerialPort(port)
          text_s=""
          text_s + "...geschlossen"
          SetGadgetText(#str_seriell, text_s)
          port=-1
        EndIf
      EndIf
      
      If EventGadget = #b_karte
        lochkarte()
        lochkarte_daten()  
      EndIf  
      
    Case #PB_Event_CloseWindow
      EventWindow = EventWindow()
      If EventWindow = #Window_0
        CloseWindow(#Window_0)
        Break
      EndIf
  EndSelect 
  
  If port > 0
    While AvailableSerialPortInput(port)  
      ReadSerialPortData(port, @r_byte, 1) 
    Wend  
  
    If result
      s_byte=Asc(result)
      WriteSerialPortData(port, @s_byte, 1)
    EndIf  
  EndIf
  
 if ----------------------------------------- 
    xz=xz+8
    If xz > 280
      xz=12
      yz=12
    EndIf  
    lochkarte_daten()  
endif ------------------------------------- 
  
  DisplaySprite(#spr_karte1,10,10)
  
  DisplayTransparentSprite(#spr_schab,xz+4,yz-2)
  FlipBuffers()
ForEver

Re: Wert in einer Repeat/Forever mit Timerzeit ändern?

Verfasst: 22.06.2014 20:22
von Rebon
funker hat geschrieben:Hallo, was unten zwischen if----------- und enfif------------ steht soll Zeitabhängig gemacht werden.
So ungefähr würde ich es machen, habe es aber nicht getestet.

Code: Alles auswählen

Zeit = ElapsedMilliseconds()
Repeat
.......  
 if ElapsedMilliseconds()-Zeit > 100
    xz=xz+8
    If xz > 280
      xz=12
      yz=12
    EndIf  
    lochkarte_daten()  
   Zeit = ElapsedMilliseconds()
endif
.........
ForEver

Re: Wert in einer Repeat/Forever mit Timerzeit ändern?

Verfasst: 23.06.2014 17:55
von funker
Jup danke.

ElapsedMilliseconds() klappt wunderbar.

GRuss