Итак, я наконец-то нашел время поиграть с XNA и занялся созданием 2D-игры (у меня есть куча художественных ресурсов от друга, который разработал его для iOS)
Многие вещи кажутся легкими для выполнения и выходят из коробки, однако я остаюсь в тупике из-за множества вещей, так как большая часть литературы (например, книги, которые я купил) не уделяет слишком много внимания 2D.
Буду очень признателен за любые разъяснения или указание на дополнительную информацию о следующих квестинах:
В чем смысл игрового сервиса? Я понимаю всю идиому регистрации объекта в качестве службы, чтобы любой другой GameComponent мог его захватить, но как это превзойти, просто сделав его публичным или статичным? Например, моя книга рекомендовала зарегистрировать объект SpriteBatch в классе Game.cs. Я не уверен, насколько это предпочтительнее, чем просто сделать его публичным / статическим, поскольку в любом случае должен быть только один экземпляр Game (синглтон)?
Я запутался, когда мне следует наследовать от GameComponent или RenderableGameComponent. Я пытаюсь следовать дизайну диспетчера / контроллера, чтобы все сущности создавались / принадлежали одному менеджеру и одинаково для других вещей. В настоящее время у меня есть каждый диспетчер / контроллер, унаследованный от GameComponent, однако, как это превосходит, если объект Game владеет всеми менеджерами и вручную вызывает update для них и рисует?
Я заметил, что Initialize вызывается до ContentLoad (), я обнаружил, что это раздражает, поскольку в моей Initialize я хотел бы создать некоторые из своих сущностей (например, Sprite, Player и т. Д.), Однако я не могу дать им их загруженные SpriteSheets или Textures, поскольку вызов для их загрузки еще не произошел. Возможно, я неправильно инициализирую или люди просто назначают текстуру ниже в ContentLoad?
Похоже, это мой самый большой " WTF " не совсем понимающий