Ich habe Probleme mit der richtigen Verwendung der AssetManager-Klasse von libGDX. Soweit ich weiß, sollten Sie niemals eine statische Instanz eines AssetManagers erstellen. Die von den Leuten vorgeschlagene Alternative bestand darin, die AssetManager-Referenz an jede einzelne Klasse weiterzuleiten, die sie verwendet. Ich frage mich, ob das, was ich unten vorgeschlagen habe, eine andere sichere Alternative ist.LibGDX static AssetManager
public class GdxGame extends Game {
private AssetManager assets;
....dispose, create AssetManager etc
public static AssetManager getAssets() {
return ((GdxGame) Gdx.app.getApplicationListener()).assets;
}
}
ich einen Assetmanager oder ein Vermögen Klasse übergeben zu müssen, um wirklich will nicht auf jede einzelne Klasse im Spiel, so versuche ich, eine Lösung, um herauszufinden, die eine Art von statischer Referenzierung erlaubt. Ist das sicher?
Wie viele Klassen benötigen Zugriff auf Ihre Ressourcen und warum? Es klingt, als ob Sie versuchen, das falsche Problem zu lösen. – Xoppa
Ich würde viele denken. Jede Entität (Mensch, Zombie, Explosion) muss auf die Klasse no verweisen? – grimrader22
Sie sollten in einigen Klassen nur direkten Zugriff auf Ihre Assets benötigen. Ihre Entitäten sollten nur eine Skin oder Atlas oder Regionen oder was immer Sie bevorzugen, aber sicherlich nicht für den Zugriff auf Ihren AssetManager verantwortlich sein sollte. Vielleicht möchten Sie Ihren Ansatz überdenken. Machen Sie keine Spielobjekte für den Zugriff auf Assets verantwortlich, sie sollten sich nicht darum kümmern. – Xoppa