Я программирую небольшую игру для своего школьного задания, игра представляет собой простую 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, а затем, чтобы избежать передачи всего списка, я могу просто вызывать его непосредственно внутри любого метода.