Ressourcenverwaltung
Die statische Klasse Controller ist der Einstiegspunkt der Engine für den Zugriff auf alle Arten von Ressourcen. Eine Ressource ist jede nicht ausführbare Datei, die zusammen mit Ihrem Spiel bereitgestellt wird. Die Klasse Controller bietet Zugriff auf verschiedene Arten von ResourcesContainer und wird von verschiedenen (Lade-)Mechanismen genutzt, um Ressourcen zur Laufzeit verfügbar zu machen. Die Engine Pi unterstützt verschiedene Ressourcentypen, darunter:1
Ressourcencontainer
ResourcesContainer ist eine abstrakte Oberklasse für alle Klassen, die einen bestimmten Ressourcentyp enthalten. Im Grunde handelt es sich um einen In-Memory-Cache der Ressourcen, der Zugriff zur Verwaltung der Ressourcen bietet.
Intern werden die Ressourcen in einer ConcurrentHashMap gespeichert, wobei die Schlüssel String-Identifikatoren und die Werte Ihre einzelnen Ressourcenobjekte sind.
Es gibt verschiedene Überladungen für ResourcesContainer#add(...) und ResourcesContainer#get(...), mit denen Sie diese Operationen an Ihre Bedürfnisse anpassen können. Der gesamte Inhalt des ResourcesContainer und seine Listener können mit ResourcesContainer#clear() gelöscht werden.2
Listeners
Mit der Methode addContainerListener(ResourcesContainerListener<T> listener) der Klasse ResourcesContainer lassen sich ResourcesContainerListener registrieren , um benachrichtigt zu werden, sobald eine Ressource zu einem ResourcesContainer hinzugefügt oder entfernt wurde. Das Entfernen von Listenern funktioniert analog mit removeContainerListener(ResourcesContainerListener<T> listener).3
-
https://litiengine.com/docs/resource-management/
The static Resources class is the engine’s entry point for accessing any kind of resource from within your LITIENGINE project. A resource is any non-executable data that is deployed with your game. The Resources class provides access to different types of ResourcesContainers and is used by different (loading) mechanisms to make resources available during runtime. LITIENGINE supports various different resource types, including: ↩
-
https://litiengine.com/docs/resource-management/#resource-containers
ResourcesContainer is an abstract implementation for all classes that contain a certain resource type. Basically, it’s an in-memory cache of the resources and provides access to manage the resources.
Internally, the resources are stored in a ConcurrentHashMap where the keys are String identifiers and the values are your individual resource objects.
There are various overloads for ResourcesContainer.add(...) and ResourcesContainer.get(...), allowing you to adjust these operations to your needs. All the ResourcesContainer‘s contents and its listeneres can be discarded with ResourcesContainer.clear(). ↩
-
https://litiengine.com/docs/resource-management/#listeners
You can register ResourcesContainerListeners with addContainerListener(ResourcesContainerListener
listener) to get notified whenever a resource was added to or removed from your ResourcesContainer. Removing listeners works analogically with removeContainerListener(ResourcesContainerListener listener) ↩