У меня возникли проблемы с определением правильного использования класса AssetManager libGDX. Насколько я понимаю, вы никогда не должны создавать статический экземпляр AssetManager. Альтернатива, предложенная людьми, заключалась в том, чтобы передавать ссылку AssetManager на каждый класс, который ее использует. Мне интересно, что то, что я предложил ниже, является другой безопасной альтернативой.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;
}
}
Я действительно не хочу, чтобы пройти AssetManager или класс Assets вокруг каждого класса в игре, так что я пытаюсь выяснить, решение, которое позволяет какой-то статической привязки. Это безопасно?
Сколько классов необходимо иметь доступ к вашим активам и почему? Похоже, вы пытаетесь решить неправильную проблему. – Xoppa
Я думаю много. Любое лицо (человек, зомби, взрыв) должно будет ссылаться на класс нет? – grimrader22
Вам нужен только прямой доступ к вашим активам в нескольких классах. Вашим сущностям необходимо предоставить только кожу или атлас или регионы или что вы предпочитаете, но, конечно же, не должны нести ответственность за доступ к вашему AssetManager. Возможно, вы захотите пересмотреть свой подход. Не делайте игровые объекты ответственными за доступ к активам, им не нужно заботиться об этом. – Xoppa