Зачем использовать base.LoadContent в игровых компонентах - PullRequest
1 голос
/ 30 января 2012

Почему у компонента игры есть вызов base.LoadContent()? Моя игра работает нормально, когда я удалил все такие вызовы на базу?

Как мне кажется, base.Update() и base.Draw() используются для сохранениякомпоненты в синхронизации с игрой.Это правильно или есть какие-то другие причины?

Спасибо

Ответы [ 2 ]

2 голосов
/ 31 января 2012

Единственный вызов base. С любым вызовом, который необходимо соблюдать в шаблоне базовой игры XNA, - это вызов base.Initialize ().Остальные вызывают пустые методы в базовом игровом классе и могут быть удалены без последствий / непредвиденного поведения.

Для получения дополнительной информации о базовом игровом классе, порядке его операций и о том, что происходит за кулисами,Ник Грэйвелин некоторое время назад написал отличную статью, которая проведет вас через все это.Вы можете прочитать это здесь -> http://blog.nickgravelyn.com/2008/11/life-of-an-xna-game/

0 голосов
/ 30 января 2012

Базовый класс GameComponent делает много неочевидных вещей за кулисами, даже если вы этого не понимаете. Вы должны убедиться, что вы всегда вызываете базовые методы (если вы не очень хорошо знаете, что делаете), чтобы компоненты игры находились в состоянии, которое XNA ожидает от них. В конкретном случае с LoadContent я не думаю, что чего-то не хватает, но не могу этого гарантировать.

В случае Initilize, например, GameComponent.Initialize () является методом, отвечающим за вызов this.LoadContent (), поэтому исключение вызова base.Initialize () в ваших производных классах будет препятствовать вашей игре загрузка любой графики, шрифтов и тому подобного, если вы сами не делаете это.

Также важно отметить, что вы можете позже переместить объекты вниз по иерархии компонентов, а затем вам придется добавить все вызовы в базу, которые вы изначально не смогли включить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...