Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Dave

Alter Hase

  • »Dave« ist der Autor dieses Themas

Beiträge: 757

Wohnort: Berlin

  • Private Nachricht senden

1

04.04.2004, 16:06

Ladebalken

Hallo,

wie realisiert man einen ladebalken?
ich habe momentan mein lade-bitte-warten-bild mit der GUI der tribase realisiert. allerdings steht dann der mauszeiger still.
ich wollte es jetzt so machen, dass ich je nach ladestatus versichedene bilder anzeige. wie macht man sowas?? man müsste ja das lade total !zerstückeln" und immer schrittweise pro frame machen......

hoffe man versteht mich einigermaßen.


mfg dave

2

05.04.2004, 14:44

Also mein erster Ansatz wäre in etwa so. Man erstellt ein einfaches Rechteck mit dem GUI Interface auf dem man dann z.B. eine nette Textur legt. Diese hat sowohl einen Farbigen Teil als auch einen Schwarzen. Der Farbige Teil gibt den Vortschritt an.

Im Programm Code selber speichert man eine floating Point Variabel, mit Werten von z.B. 0 bis 0.9. Diese wird in einigen Teilen des lade Codes immer neu gesetzt. Kurz bevor der lade Code fertig ist, wird sie auf den max Wert gesetzt. Jedesmal wenn man auch diese Variabel setzt, rendert man auch den Ladebildschirm neu.

Die Variabel kann man so schön für die V-Koordinate der Ladebalkentextur verwenden.
Wichtig! Ich übernehme keinerlei Verantwortung für eventl. Datenverlust oder Schäden am Rechner ;D

Osram

Alter Hase

Beiträge: 889

Wohnort: Weissenthurm

Beruf: SW Entwickler

  • Private Nachricht senden

3

05.04.2004, 19:57

Z.B., Du musst n Bilder laden:

Quellcode

1
2
3
4
5
for(i=0; i<n; i++)
{
  SetzLadeBalken(100.0*i/n); // in Prozent
  Bild laden
}


Man kann das SetzLadeBalken auch am Ende haben. Man kann es verfeinern, indem man es z.B. nur alle 8 Schleifendurchläufe aufruft, falls jedes Bildladen sehr schnell ist.

Es kann natürlich passieren dass erst 10 kleine, schnell ladende und dann 10 grosse, langsam ladende Bilder kommen. Einen wirklich guten, gleichmässig laufenden Ladebalken hinzubekommen ist m.E. den Aufwand nicht wert.

Dave

Alter Hase

  • »Dave« ist der Autor dieses Themas

Beiträge: 757

Wohnort: Berlin

  • Private Nachricht senden

4

06.04.2004, 14:33

das heißt ich muss während meiner lade-funktion die float variable ändern und dann immer die render-funktion der GUI aufrufen??

5

06.04.2004, 15:18

Wenn sich der Status des Ladebalkens ändert, muss man diese ja auch darstellen. Sprich Rendern.

Mir fällt da aber noch eine Weitere Möglichkeit ein. Man kann da auch direkt in den Backbuffer malen. Als vorlage nimmt man einfach eine schöne Bitmap und malt die dann, nach guter alter DDraw manier, über den Ladebalken. Da es hier ja nicht auf geschwindigkeit ankommt ist das ganze ja nicht so schlimm.
Wichtig! Ich übernehme keinerlei Verantwortung für eventl. Datenverlust oder Schäden am Rechner ;D

MannyDasMammut

Treue Seele

Beiträge: 76

Wohnort: Baden - Würtemberg / Achern

Beruf: Schüler

  • Private Nachricht senden

6

06.04.2004, 15:23

Zweiter Thread

Du könntest es auch Eleganter lösen so wie es einige Windows Anwendungne machen.

Du könntest einfach wärend des Ladevorgangs eine Variable setzen und aus einem zweiten Thread heraus immer abfragen.

Closed
Werde ich hier eigentlich noch gebrauch ansonsten würd ich gerne nach Hause gehen und meine graue Wand anstarren.

7

06.04.2004, 15:32

Ja das ginge auch. Hat nur einen Hacken. Man Arbeitet mit mehreren Threads was wieder Syncronisierungen mit sich zieht. Viel aufwand für einen einfachen Ladebalken.
Wichtig! Ich übernehme keinerlei Verantwortung für eventl. Datenverlust oder Schäden am Rechner ;D

Dave

Alter Hase

  • »Dave« ist der Autor dieses Themas

Beiträge: 757

Wohnort: Berlin

  • Private Nachricht senden

8

07.04.2004, 19:00

hab noch nie mit threads gearbeitet. kennt jemand ein gutes tutorial??

danke für die antworten.

Anonymous

unregistriert

9

07.04.2004, 19:10

http://www.scherfgen-software.net/forum/viewtopic.php?t=1797
Und wieder wird einer nen Multithreading proger :roll:
Falls du Fragen hast.... frag ;D :huhu:

Werbeanzeige