MilliSecs() - 3 sec anzeigen
Übersicht

![]() |
N0XBetreff: MilliSecs() - 3 sec anzeigen |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hey!
Ich möchte (je nach Level) immer wenn man ein neues Level erreicht hat, dass 3 Sekunden lang das Level angezeigt wird und dann wieder verschwindet. Habe das aber nur so hinbekommen, dass das nur beim ersten Level hinhaut, weiß auch wieso, da ja nur einmal von Start die Zeit gemessen wird und diese niewieder erreicht wird (schon vorrüber). Man müsste also irgendwie MilliSecs() zurücksetzen. (Oder? Wenn nicht, belehrt mich eines Besseren.) Hier mein Ansatz: (nur Codeausschnitt!) Code: [AUSKLAPPEN] Local levelUp = MilliSecs()+3000
While Not KeyDown(1) Select quest Case 1 If levelUp > MilliSecs() Then Text 100,100,"LEVEL 1" Case 2 If levelUp > MilliSecs() Then Text 100,100,"LEVEL 2" Case 3 If levelUp > MilliSecs() Then Text 100,100,"LEVEL 3" Case 4 If levelUp > MilliSecs() Then Text 100,100,"LEVEL 4" End Select Wend End Mfg, N0X |
||
Projekte: |Tibario| http://www.blitzforum.de/worklogs/325/ | 5% |
![]() |
Eingeproggt |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] levelUp = MilliSecs()+3000
Diese Zuweisung solltest du nicht am Anfang des Spiels machen (Vor der Hauptschleife) sondern immer dann wenn quest verändert wird. mfG, Christoph. |
||
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9 |
![]() |
Skabus |
![]() Antworten mit Zitat ![]() |
---|---|---|
Eigentlich nicht!
MilliSecs() gibt ja die Millisekunden seit Systemstart an. Somit müsstest du immer MilliSecs()+3000 setzen, bei jedem Schleifendurchlauf. Oder eben immer dann wenn deine quest-Variable verändert wird.je nachdem, zu welchem Zeitpunkt du diese 3 Sekunden benötigst. In deinem Beispiel setzt du levelUp nur einmal auf MilliSecs()+3000, damit speicherst du aber nur den MOMENT der zu dem Zeitpunkt aktiv ist. Wenn du also willst, dass es IMMER 3 Sekunden angezeigt wird, musst du innerhalb deiner Hauptschleife auch deine Variable MilliSecs()+3000 wieder neu "berechnen" lassen. Also einfach levelUp = MilliSecs()+3000 in die Hauptschleife, Aktualisierungbedingung mit If-Verzweigung drum und dann müsste das problemlos funktionieren... MfG Ska |
||
"In einer so verrückten Welt, kann man um in ihr zu überleben nur eines tun, nämlich eben jenes werden: Ein Verrückter!" -Selbstzitat
aktuelles Projekt: Aves Certim - Der Galgen ist nicht weit! Ein SNES-RPG mit Handels- und Wirtschaftselemente. Infos?Hier: http://www.blitzforum.de/worklogs/234/ Besucht meine Seite: www.seelenfriedhof.de.vu |
![]() |
N0X |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das liebe ich an diesem Forum, selbst um kurz nach 1 bekommt man noch Antworten. ![]() Mein Problem, ich weiß nicht wie die Bedingung aussehen könnte (um MilliSecs() in der Hauptschleife). Hm. Mfg, N0X |
||
Projekte: |Tibario| http://www.blitzforum.de/worklogs/325/ | 5% |
![]() |
Eingeproggt |
![]() Antworten mit Zitat ![]() |
---|---|---|
Liegt es an der Uhrzeit oder ...?
Skabus, ich bin da nicht deiner Meinung. Wenn du in der Hauptschleife immer levelUp = MilliSecs()+3000 setzt, dann ist If levelUp > MilliSecs() Then IMMER erfüllt - aber auch wenn 3 Sekunden schon vergangen sind... Ich bleib bei meiner ersten Antwort - NOX, das kriegst du doch noch hin, deinen Levelwechsel (wie der auch immer aussieht - jedenfalls musst du ihn schon haben ![]() mfG, Christoph. |
||
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9 |
![]() |
N0X |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hm, weiß selbst nicht worans nun liegt.
Problem ist: Ich muss ja irgendwie prüfen ob sich Variable "level" verändert hat, und dann "levelUp" ergänzen, und danach, das Level anzeigen. Und, naja, das krieg ich nicht hin ![]() Hm. Mfg, N0X |
||
Projekte: |Tibario| http://www.blitzforum.de/worklogs/325/ | 5% |
![]() |
ToeB |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich probies mal :
Code: [AUSKLAPPEN] If quest_change = 1 then ;wenn die Quest geändert wird
quest_change = 0 ;Wieder auf 0 setzten damit die zeit nur einmal gesetzt wird time = Millisecs() +3000 endif quest_change musst du nur einmal auf 1 setzten, wenn zum beispiel die punktezahl erreicht ist, also so (statt punkte einfach bedingung einfügen) : Code: [AUSKLAPPEN] If Punkte > 1000 and quest_change = 0
quest_change = 1 endif Und damit hat sichs ! Und nochwas : wenn du sowiso den Text immer mit der questzahl hinschreibst kannst du auch gleich schreiben Code: [AUSKLAPPEN] If time <= Millisecs() then Text 400,300,"LEVEL "+Quest,1,1
Das statt der Select/Case struktur... nur mal so als tipp ![]() mfg ToeB |
||
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt! |
![]() |
N0X |
![]() Antworten mit Zitat ![]() |
---|---|---|
Jo, cool danke!
Hätte ich eigentlich auch selbst drauf kommen können... Mfg, N0X |
||
Projekte: |Tibario| http://www.blitzforum.de/worklogs/325/ | 5% |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group