Соответственно к source code of MonoGame связанный Дилан Уилсон, обновления и Нарисуйте методы из базового класса. Игра называется только Update(...)
и Draw(...)
на каждый элемент отфильтрованного GameComponentCollection
, сборник IGameComponent
.
IGameComponent
- это интерфейс, который показывает, как XNA и Monogame хотят, чтобы вы управляли своим кодом. Он поставляется с другими интерфейсами, такими как IUpdateable
и IDrawable
. Два других класса реализуют эти интерфейсы и обеспечивают логику: GameComponent
и DrawableGameComponent
.
Идея этих интерфейсов и классов состоит в том, что все компоненты игры имеют аналогичный цикл обновления/рисования. Он стандартизирует имена и параметры метода (Initialize, LoadContent, Update, Draw, ...) и предоставляет скелет того, каким должен быть ваш пользовательский компонент. В зависимости от того, должны ли ваши классы обновляться, рисоваться или ни одна из них, вы можете наследовать эти классы.
Здесь GameComponentCollection
: вы можете добавить свои компоненты в Game.Components
, а базовый класс игры автоматически обработает цикл обновления, вызвав Update() и Draw() без вашего вмешательства. Вы также можете установить порядок вызова между компонентом со свойствами предложений по GameComponent
и DrawableGameComponent
.
В любом случае, кажется, что некоторые люди (включая меня) и номера учебных пособий не используют эту возможность в своем коде. Вы можете самостоятельно вызывать Initialize, LoadContent, Update и Draw из своего пользовательского класса. В этом случае, кажется, что вызовы base.Update(...)
и base.Draw(...)
не требуются в вашей программе.
Достаточно легко проверить, что делают эти базовые методы, поскольку MonoGame является открытым исходным кодом. https://github.com/mono/MonoGame/blob/develop/MonoGame.Framework/Game.cs – craftworkgames