Ladebalken

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

BlitzBasic303

Betreff: Ladebalken

BeitragFr, Sep 29, 2006 23:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!

Wenn ich mit Blitz z.b. ein Lied lade,stoppt das Programm und macht erst weiter wenn das Lied fertig geladen wurde. Wenn ich aber mit einem Ladebalken die zeit überbrücken will, und ich nur das große lied laden muss, bringt mir der Balken nichts,weil ich ja nur nach oder vor dem Ladevorgang etwas einzeichnen kann. Ich dachte mir aber, man könne über die hardware (mithilfe von dll) im hintergrund den balken laufen lassen. Geht das?

Mfg

BlitzBasic303

BladeRunner

Moderator

BeitragFr, Sep 29, 2006 23:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Gegenfrage:
Muss das Lied denn exakt in dem Moment geladen werden?
Warum kombinierst Du nicht alle Ladevorgänge für das Spiel (oder alternativ alle des Levels, je nach Programm). Dann ist der Ladebalken wieder berechtigt, da er bei jeder Datei weiterspringt.

Seh es einfach als Denkanstoss - es ist meist sehr ungünstig während des Programms Dateien nachzuladen.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

Blitzcoder

Newsposter

BeitragSa, Sep 30, 2006 9:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Also, ich mache es meistens entweder so, dass der Ladebalken Nach jeder Datei weitergeht, oder dass einfach nur angezeigt wird:

Code: [AUSKLAPPEN]

Lade Sounds...
Lade Models...
Lade Grafiken...
Lese Konfig-Datei...


MfG Blitzcoder
P4 3 Ghz@3,55Ghz|GF 6600GT 256MB|Samsung 80GB | 2x Samsung 160GB|2048MB DDR-400 RAM|6 Mbit Flatrate | Logitech G15 | Samsung 225BW-TFT | Ubuntu Gutsy Linux | Windows Vista | Desktop | Blog | CollIDE | Worklog
________________
|°°°°°°°°°°°°°°||'""|""\__,_
|______________ ||__ |__|__ |)
|(@) |(@)"""**|(@)(@)****|(@)
 

flashmaxel

BeitragSa, Sep 30, 2006 11:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,
Also was du dazu bräuchtest wäre Mulitasking. In BB alleine geht das soweit ich weiß nicht.
Wennschon müsstest du eine Dll einbinden, dann im BB-Progg die Dll Funktion aufrufen. Diese Funktion müsste dann einen neuen Task(Thread) erstellen und damit müsste die DLL Funktion die du aus Blitz aufgerufen hast fertig sein! (nur noch der andere Task läuft, der dann für den ladebalken sorgt)
Damit fährt Blitz dann fort im Hauptprogg fort, wo du dann den Sound laden kannst. Dann müsstest du es irgendwie hinbekommen einen grafischen Ladebalken aus der Dll zu erstellen (frag mich nicht wie...) und gleichzeitig die loadsound Funktion abfragen wie weit sie ist (nicht möglich).
Alles in allem hab ich keine Ahnung wie man das machen sollte aber wenn du dich für multitasking interessierst: http://www.codeworx.org/cpp_tuts_1_5.php - ich hab damit noch nie gearbeitet deswegen weiß ich nicht wirklich ob das, so wie ich oben schrieb funktioniert.
Ich würde sagen : Lass die Idee fallen und machs wie BladeRunner oder Blitzcoder, ...

Max Very Happy
Real C programmers never die; they cast to void.
 

Dreamora

BeitragSa, Sep 30, 2006 11:38
Antworten mit Zitat
Benutzer-Profile anzeigen
1. Heisst das Multi Threading, nicht Multi Tasking. Multi Tasking unterstützt seit Win95 jedes Programm.

2. Das laden einer Datei aus einer DLL geht nur bedingt. Da du danach die Bytedaten aus einer Bank dann in Blitz laden musst, was leider nur für die wenigsten Datentypen geht.



Und ich denke nicht, das es irgend ein Lied gibt das gross genug ist um das Programm lange genug zu freezen während es geladen wird (mehr als 10-20mb ist sowieso zuviel) so das das mit dem Ladebalken normalerweise kein Problem sein wird Smile
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

BladeRunner

Moderator

BeitragSa, Sep 30, 2006 12:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Jop, es stellt sich noch die Frage was für Datenmengen Du in den Speicher schaufeln willst. Wenn Du wirklich riesige Soundfiles hast tippe ich drauf das Du .wav nutzt, und da sollte Dir mit .ogg oder .mp3 schon geholfen sein.
Du könntest, wenn Du unbedingt runtime was laden willst, auch einfach den Mousecursor durch ne Sanduhr ersetzen oder "loading" auf den Screen pasten. Das ist mittlerweile so akzeptiert das wohl kein user nicht versteht was los ist.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

D2006

Administrator

BeitragSa, Sep 30, 2006 12:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Es ist glaub ich ziemlich egal, ob das eine Mp3 oder eine Ogg-Datei ist (hab's fix mit Mp3 getestet). Blitz dekomprimiert es im Hauptspeicher. Verhält sich quasi wie mit Bildern. Wenn mein Programm eine 6 MB große Mp3 Datei lädt braucht es plötzlich 50 MB mehr Arbeitsspeicher.

Aber Musik lädt man sowieso nicht in den Hauptspeicher. Die streamt man mithilfe von ql:LoadMusic.
Intel Core i5 2500 | 16 GB DDR3 RAM dualchannel | ATI Radeon HD6870 (1024 MB RAM) | Windows 7 Home Premium
Intel Core 2 Duo 2.4 GHz | 2 GB DDR3 RAM dualchannel | Nvidia GeForce 9400M (256 MB shared RAM) | Mac OS X Snow Leopard
Intel Pentium Dual-Core 2.4 GHz | 3 GB DDR2 RAM dualchannel | ATI Radeon HD3850 (1024 MB RAM) | Windows 7 Home Premium
Chaos Interactive :: GoBang :: BB-Poker :: ChaosBreaker :: Hexagon :: ChaosRacer 2
 

BlitzBasic303

Betreff: RE:

BeitragSa, Sep 30, 2006 20:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Ok, dann schlag ich mir das mal aus dem Kopf. Habe gedacht man könne irgendwie direkt auf den grafikspeicher zugreifen und direkt darauf zeichnen. Dann lös ich das jetzt mit einem schönen Bild am Anfang und dann reicht das auch.

Trotzdem Danke!

Mfg

BlitzBasic303

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group