Blitz Basic Text 3Sek. anzeigen

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Bobo2040

Betreff: Blitz Basic Text 3Sek. anzeigen

BeitragDo, Sep 19, 2013 20:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi
ICh steh aufm Schlauch und komme nichz weiter
Ich will fuer ein Spiel ein Questsystem machen und wurde dann
DIe Behlonungs Infos 3 Sekunden anzeigen aber mit
Millisecs () und warten bekomme ichs nicht hin..

ZEVS

BeitragDo, Sep 19, 2013 20:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Dazu hat Midimaster ein wunderbares Tutorial geschrieben: www.blitzforum.de/forum/viewtopic.php?t=34436.
Allgemein empfehle ich, ein bisschen Tutorials zu stöbern, auch wenn du keine Probleme hast. Ich habe vieles sehr umständlich gelöst, bis ich gesehen habe, dass erfahrenere Leute sehr schöne Lösungen gefunden haben und (meist andere) sie anfängerfreundlich erklären.

ZEVS

Xeres

Moderator

BeitragDo, Sep 19, 2013 21:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Bitte poste ansonsten deinen Code, damit man dir helfen kann.
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)
 

Bobo2040

BeitragSa, Sep 21, 2013 14:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Hmm... okay habe mir das Tut angeschaut und so hatte ich es ja auch gemacht also im Prinzip so Very Happy
Nur wird der Text nur ganz kurz angezeigt ...
Hier ist mal meine Funktion ... ich habe als überlegt was es seien könnte nur komme ich da leider nicht drauf ... Sad
BlitzBasic: [AUSKLAPPEN]

Function ShowDMG()
If Schaden>1 Then
If UserShowSchadenTimer<MilliSecs() Then
UserShowSchadenTimer=MilliSecs()+700
Color 255,64,64
Text AiX,AiY,"- "+Schaden,True,False
EndIf
EndIf

If AiSchaden>1 Then
If AiShowSchadenTimer<MilliSecs() Then
AiShowSchadenTimer=MilliSecs()+700
Color 255,64,64
Text SpielerX,SpielerY,"- "+AiSchaden,True,False
EndIf
EndIf
End Function

ZEVS

BeitragSa, Sep 21, 2013 15:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Dein Code tut folgendes: Er prüft zunächst, ob der User Schaden erhalten hat und vergleicht dann, ob der Zeitpunkt, der in UserShowSchadenTimer beschrieben ist, schon vorbei ist. Wenn dem so ist, setzt er UserShowSchadenTimer auf einen Zeitpunkt, der in etwas mehr als einer halben Sekunde ist und zeigt nur für diesen Frame (davon gibt es sechzig pro Sekunde) den Schaden an. Nach 700 Millisekunden passiert das gleiche dann nochmal.
Zusammengefasst: Er zeigt alle 700 Millisekunden für einen Frame lang den Text an. Ein Frame ist wirklich kurz.
Wenn ich es richtig verstanden habe, möchtest du einen Text für drei Sekunden (3000 Millisekunden) anzeigen. Dann merkst du dir den Zeitpunkt in drei Sekunden:
BlitzBasic: [AUSKLAPPEN]

Local Zeitpunkt = 0
If Bedingung für die Textanzeige (Schaden o.ä.) Then
; Text für drei Sekunden anzeigen
Zeitpunkt = MilliSecs()+3000
EndIf

Dann must du in jedem Frame schauen, ob der gespeicherte Zeitpunkt in der Zukunft liegt, also ob Millisecs()<Zeitpunkt. Wenn das so ist, zeigst du den Text an:
BlitzBasic: [AUSKLAPPEN]
If MilliSecs()<Zeitpunkt Then
Text ...
EndIf

Für die Variable kannst du dir einen besseren Namen überlegen als Zeitpunkt (vor allem, wenn du mehrere davon hast).

ZEVS
 

Kruemelator

BeitragSa, Sep 21, 2013 15:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Spiel hier mit mal etwas rum:
BlitzBasic: [AUSKLAPPEN]
Global zeitwert

Function Aktivieren( dauer )
zeitwert = MilliSecs() + dauer
End Function

Function Malen()
If zeitwert > MilliSecs() Then
Text 0,0,"Blablabla"
EndIf
End Function


Edit: Da war ich zu langsam.
 

Bobo2040

BeitragSa, Sep 21, 2013 16:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Ok danke... Naja meine Funktion hatte ich ja verstanden wie die Funktioniert hab sie ja selbst geschrieben Wink hatte nur einen Denkfehler jetzt klappts danke Smile

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group