Slick Loadingscreen

Hey com,

kennt sich zufällig jemand mit Slick2D aus? Ich möchte gerne einen Loadingscreen schreiben, wo die Daten geladen werden und halt auch auf dem Display ausgegeben wird, was geladen wird.

Unter AWT würde ich einen neuen Thread aufmachen, aber Slick darf man nur im SlickThread selber die Slick elemente nutzen. Und somit kommt eine Exception, wenn ich ein SlickImage erstellen möchte.

Ich habe es vorübergehend so geregelt, dass in Update Blockweise geladen wird (mit if-elseif und einem counter) und dann wird aber nur ausgegeben, was fertig geladen ist. Ich möchte es aber so haben, dass z.B. auch ausgegeben wird “Tile [12/XXX] wird geladen”, was so aber nur schlecht möglich ist.

Kennt sich jemand damit aus?

mfg
BH16

PS: An alle, die Slick nicht kennen: es wird immer erst update(), dann render() aufgerufen, nicht parrallel.

Ich glaube ich hab dein Problem nicht ganz verstanden.

Aber ich versuche es trotzdem mal :

Verwendet du schon StateBasedGame? Dann wäre dein LoadingScreen schon mal ein GameState.

Zunächst könnte ich mir eine Map<String,String> vorstellen:

Map<String,String> ressources = new HashMap<>();
ressources.put("haus","/images/haus.png");
ressources.put("baum","/images/baum.png");

dann gibt es eine weitere Map z.B. Map<String,Image> loadedRessources = new HashMap<>();

Bei jedem Update nimmst du nun ein Element aus der ressources-Map, lädst es, fügst es in die loadedRessources-Map ein und löschst es aus der ersten.

Ggf. kannst du dann vor jedem Ladevorgang den namen in einer Membervariable merken, und diesen namen dann in render() zum Anzeigen verwenden.

Wie gesagt, möglw. hab ich dein Problem nicht verstanden, könntest du es dann nochmal genauer erklären?

Genau das war es :slight_smile: Super idee, so werde ich es machen. Bei uns ist es nur alles numerisch, da reicht eig ein Array :slight_smile:

mfg
BH16