Timer mit auto reset.

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

DebbieDanger

Betreff: Timer mit auto reset.

BeitragDo, Mai 19, 2005 18:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Problem steht im codeanfang.
BlitzBasic: [AUSKLAPPEN]

;*Timer mit auto reset*
;Problem: wenn man es ausführt springt er wieder auf null,
;überschreitet die 3000ms(3 sekunden) grenze,
;aber danach und zählt endlos aufwärts.

Graphics 800,600
SetBuffer = BackBuffer()


altezeit=0
startzeit = MilliSecs();der ursprüngliche zeitbeginn
;startzeit=Int(startzeit)



Repeat;***************************** SCHLEIFE
Cls;CLS.

jetztzeit = MilliSecs()
;OK hier steckten die aktuellen millisecs
;jetztzeit=Int(jetztzeit) ;int das ganze vorsichtshalber


neuzeit = jetztzeit - altezeit
;beim ersten durchlauf ist altezeit=0, sonst rechnet er
;aktuellezeit[jetztzeit] - zeit am ende[altezeit]


shortzeit = neuzeit - startzeit
;angezeigt wird eine vortlaufende zahl,
;nämlich jetzt gemessene zeit - anfangszeit :int

;shortzeit=Int(shortzeit)



If shortzeit >= 3000 Then altezeit=shortzeit
;wenn shortzeit die 3 sekunden grenze erreicht,
;wird shortzeit in altezeit gespeichert
;shortzeit=Int(shortzeit)
;wenn nach dem \"Then\" ein \"shortzeit=3000:\" folgt macht er beim zweiten lauf bei 3000 ende

Text 50,70, \"shortzeit: \" + shortzeit
Text 50,100,\"startzeit: \" + startzeit
Text 250,70,\"jetztzeit: \" + jetztzeit
Text 250,100,\"altezeit: \" + altezeit
Text 500,70,\"neuzeit: \" + neuzeit



Flip
Until KeyHit(1);***************************** SCHLEIFE
End

;ein paar sachen sind auskommentiert, es geht mit und ohne sie nicht.


Help greatly appreciated!
 

DebbieDanger

Betreff: ?!

BeitragDo, Mai 19, 2005 19:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Irgendwie sehe ich meinen post nicht, weiss aber auch nicht ob er da bei euch sichtbar ist.
Komisch naja ich will nicht doppelposten, also ist was zu sehen?
 

Dreamora

BeitragDo, Mai 19, 2005 19:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Das Problem ist diese Zeile

shortzeit = neuzeit - startzeit


Da du startzeit nur 1 mal setzt wird das, wenn altezeit das erste mal gesetzt wird, negativ, da dann neuzeit immer kleiner als 3000 sein muss, während startzeit im millionenbereich ist.

danach kann shortzeit logischerweise nur noch negativ sein -> wird immer <3000 sein womit altezeit nimmer aktuelisiert wird und der wert ins unendliche steigt.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

skey-z

BeitragDo, Mai 19, 2005 19:14
Antworten mit Zitat
Benutzer-Profile anzeigen
ich sehe zwar nicht den zweck gerade, so viele zeiten zu setzten, aber am einfachsten ist:

BlitzBasic: [AUSKLAPPEN]

oldtime=MilliSecs()

Repeat
;mach was

If MilliSecs()-oldtime>=3000
;mach was anderes
oldtime=MilliSecs()
EndIf
Until ;irgendwas
Awards:
Coffee's Monatswettbewerb Feb. 08: 1. Platz
BAC#57: 2. Platz
Twitter
 

Schnuff

BeitragDo, Mai 19, 2005 21:33
Antworten mit Zitat
Benutzer-Profile anzeigen
skey-z hat Folgendes geschrieben:
ich sehe zwar nicht den zweck gerade, so viele zeiten zu setzten, aber am einfachsten ist:

BlitzBasic: [AUSKLAPPEN]

oldtime=MilliSecs()

Repeat
;mach was

If MilliSecs()-oldtime>=3000
;mach was anderes
oldtime=MilliSecs()
EndIf
Until ;irgendwas


Hey hinter eine "IF" abfrage gehört ein Than
ansonsten hieße es IF,- Struktur
so heißt es If,-Then-Struktur
 

Dreamora

BeitragDo, Mai 19, 2005 21:54
Antworten mit Zitat
Benutzer-Profile anzeigen
then muss nicht zwangsweise da sein. Das ist optional.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

Schnuff

BeitragDo, Mai 19, 2005 22:34
Antworten mit Zitat
Benutzer-Profile anzeigen
coll wuste ich nicht Embarassed

skey-z

BeitragDo, Mai 19, 2005 22:50
Antworten mit Zitat
Benutzer-Profile anzeigen
oops
mache ich normalerweise auch, habe ich nur vergessen, aber ist ja auch egal, wurdest ja schon aufgeklärt.
Awards:
Coffee's Monatswettbewerb Feb. 08: 1. Platz
BAC#57: 2. Platz
Twitter

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group