"Multitasking"

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

DATIS

Betreff: "Multitasking"

BeitragMo, Sep 17, 2007 18:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo Blitzer.
Ich möchte Musik einblenden und gleichzeitig eine Benutzerabfrage machen. Die Benutzerabfrage läuft folgendermaßen: Es werden alle Dateien aus dem Ordner "PLAYER" ausgelesen. Dann wird die Endung weggeblendet und man wählt erstmal den Spieler mit den Pfeiltasten. Später kommt die Auswertung der Informationen in der Datei. Das habe ich schon alles, aber das gleichzeitige Einblenden und abfragen geht nicht:

Code: [AUSKLAPPEN]
Function blendin(chan$,in=1)
count=MilliSecs()
If in=1 Then
   For i#=0 To 1 Step 0.05
      ChannelVolume chan,i#
      Delay 200
   Next
Else
   For i#=1 To 0 Step -0.05
      ChannelVolume chan,i#
      Delay 200
   Next
EndIf
   
End Function

Die Einblend (und Ausblend) Funktion.

Code: [AUSKLAPPEN]
;ANMELDEN!!!
loginbg=LoadImage("DATA\IMAGES\background.bmp")
loginfield=LoadImage("DATA\IMAGES\loginfield.bmp")
pw_wrong=LoadImage("DATA\IMAGES\pw_wrong.bmp")
music=LoadSound("DATA\MUSIC\mp_action3.mp3")
LoopSound music
channel=PlaySound(music)


DrawBlock loginbg,0,0
Flip
blendin(channel)
DrawBlock loginfield,80,120
Flip
Include "Login.bb" ;130 & 132 ist die Auswahl! (x&y sind zentriert)

;Daten checken
spieler=ReadFile("PLAYER\"+user$+".cfg")
   For i=1 To 7
      ReadLine$(spieler)
   Next
   pw$=Mid$(ReadLine$(spieler),10)
   ReadLine$(spieler)
   ReadLine$(spieler)
   debugmode$=ReadLine$(spieler)
   ReadLine$(spieler)
   ReadLine$(spieler)
   mode$=ReadLine$(spieler)
CloseFile spieler

"Start.bb" - wird als erstes ausgeführt.

Code: [AUSKLAPPEN]
ordner=ReadDir("PLAYER")
;//MAXIMAL 10 SPIELER!!!
Dim spiel$(10)
variable=0
Repeat
   A$=NextFile(ordner)
   If A$<>"" And A$<>"." And A$<>".." Then
      variable=variable+1
      spiel(variable)=A$
   EndIf
   Until A$=""
CloseDir(ordner)
b=1
Repeat
b=b+1
Until spiel(b)=""
b=b-1

;spiel$ (spieler) auf den ersten wert setzen.
p=1

FlushKeys
Repeat
Cls
DrawBlock loginbg,0,0
DrawBlock loginfield,80,120
auswahl$=Left$(spiel(p),Len(spiel(p))-4)
Color 200,200,200
Text 212,254,auswahl$,1,1
Color 0,0,255
Text 210,252,auswahl$,1,1
Flip
If KeyHit(200) Then p=p+1
If KeyHit(208) Then p=p-1
If p<1 Then p=b
If p>b Then p=1
Until KeyHit(28)
WaitKey
user$=auswahl$

"Login.bb" - eine Include von Start.bb

Wie schaffe ich es damit?
Die Musik soll eine reinfaden und das Loginfield dann sofort sichtbar sein.

Danke für die Hilfe im Vorraus.
Mfg, Datis
Frauen und Technik?
Männer und BHs?

Beides möglich.

Markus2

BeitragMo, Sep 17, 2007 20:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Mach die Einblend (und Ausblend) Funktion neu .

Du brauchst ne Startzeit und die aktuelle Zeit ,
die Differenz bestimmt dann den Wert fürs einblenden .

Als Beispiel 5 Sekunden .

if Differenz>5 then Differenz=5
Volume=Differenz/5.0
oder
Volume=1.0-(Differenz/5.0)

Deine Ein/Ausblend Funk. kannste dann immer aufrufen ohne
das die den Programm Fluß stört bzw. unterbricht .

DATIS

BeitragSa, Sep 22, 2007 10:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Naja, ich hab's glaube ich nicht ganz verstanden.
Habe jetzt vorm Start der Funktion die Variable start mit MilliSecs()/1000 definiert, um die Sekunden zu erhalten.
Jetzt lautet die Funktion:
Code: [AUSKLAPPEN]
Function blendin(chan$,in=1)
differenz=MilliSecs()/1000
If differenz>5 Then differenz=5
Volume=Differenz/5.0
ChannelVolume chan$,Volume
End Function


Das Einblenden klappt aber nicht Sad
Frauen und Technik?
Männer und BHs?

Beides möglich.

Markus2

BeitragSa, Sep 22, 2007 10:57
Antworten mit Zitat
Benutzer-Profile anzeigen
schon fast,aber ich meinte das eher so

und ChannelVolume bekommt den Parameetr nicht als String

Code: [AUSKLAPPEN]

startzeit=MilliSecs()

blendin chan,0,startzeit
oder
blendin chan,1,startzeit



Function blendin(chan,in#,startzeit)
differenz#=(MilliSecs()-startzeit)/1000.0
If differenz>5 Then differenz=5
Volume#=in-(Differenz/5.0)
ChannelVolume chan$,Volume
End Function

DATIS

BeitragSa, Sep 22, 2007 11:15
Antworten mit Zitat
Benutzer-Profile anzeigen
schade, hat bei mir nicht funktioniert: es kam keine musik.
Frauen und Technik?
Männer und BHs?

Beides möglich.

Markus2

BeitragSa, Sep 22, 2007 11:54
Antworten mit Zitat
Benutzer-Profile anzeigen
das muß dann auch 5 sek. aufgerufen werden

DATIS

BeitragSa, Sep 22, 2007 14:20
Antworten mit Zitat
Benutzer-Profile anzeigen
wie meinst du das? mit einer repeat schleife die funktion so oft aufrufen, bis 5 sek um sind?
Frauen und Technik?
Männer und BHs?

Beides möglich.

Markus2

BeitragSa, Sep 22, 2007 19:13
Antworten mit Zitat
Benutzer-Profile anzeigen
In der Schleife wo du die Eingabe entgegen nimmst .

Die Funk. kannste so oft aufrufen wie du willst weil
nach den 5 Sek. ist die Musik eingeblendet und dann bleibt sie
es auch .

Wenn du jetzt ausblenden willst erzeugst du eine neue Startzeit
und gibt bei dem Parameter in eine 1 an .

Zum testen kannste eine Endlosschleife benutzen die mit
Escape unterbrochen werden kann .

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group