Я программирую небольшую игру для школьного задания, игра представляет собой простую 2D-игру с монстрами, предметами и пулями. В основном вы бегаете вокруг и пытаетесь собрать все монеты предмета, монстры пытаются помешать вам, и вы можете сбивать их пулями, которые вы собираете. Очень просто.
Вопрос в том, что я добавил монстров, предметы, стены, игрока и пули в статический класс с именем LiveObjects, и к этим объектам я могу получить доступ из любого места в коде. Это плохая практика? Какая альтернатива? (Это не многопоточный)
LiveObjects.cs
internal static class LiveObjects
{
public static List<Item> items = new List<Item>(); // List with all the items
public static List<Monster> monsters = new List<Monster>(); // List with all present monsters
public static List<Wall> walls = new List<Wall>(); // List with the walls
public static List<Bullet> bullets = new List<Bullet>(); // List with the bullets
public static Player player = new Player(0, 0); // The player object
}
Я использую множество различных классов для манипулирования данными внутри LiveObjects, а затем, чтобы избежать передачи всего списка, я могу просто вызвать его непосредственно внутри любого метода.