Предыдущая Следующая
// здесь следует код инициализации base.Initialize();
}
Этот метод предназначен для инициализации различных компонентов игры, которые вам понадобятся перед самым первым стартом игры. Из этого метода вы можете передавать управление и в другие методы, связанные с инициализацией различных начальных данных (позиции на экране, инициализация различных переменных и т. д.). Единственные ограничения этого метода состоят в том, что в данном методе нельзя загружать графические компоненты игры (текстуры, модели), для этих целей служит метод LoadGraphicsContent().
protected override void LoadGraphicsContent(bool loadAllContent)
{
if (loadAllContent)
{
// здесь загружаются модели и графические элементы
}
}
Метод LoadGraphicsContent() необходим для загрузки графической составляющей вашей игры, используя при этом всю мощь XNA Content Pipeline, который позволяет загрузить в одну строку кода любую 3Э-модель или графику определенного формата. Поддерживаемых форматов много, но об этом в следующей главе, когда мы с этим непосредственно столкнемся.
Следующим в исходном коде идет метод UnloadGraphicsContent(), который в автоматическом режиме производит выгрузку загруженных 3Э-моделей и графики на этапе выхода из игры. Это своего рода менеджер выгрузки компонентов игры, работающий на автомате и освобождающий захваченные ресурсы системы по сигналу выхода из программы. В стандартном использовании загрузчика добавлять в метод UnloadGraphicsContent() дополнительный исходный код не нужно. Но если применяются различные дополнительные загрузчики, то выгрузку загруженных элементов в методе UnloadGraphicsContent() необходимо прописать явно.
Затем в исходном коде класса Gamel располагается метод Update() со следующим исходным кодом:
protected override void Update(GameTime gameTime)
{
if(GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed)
this.Exit();
// код игры
base.Update(gameTime);
}
Этот метод предназначен для обновления состояния игры. В методе Update() необходимо расположить все методы, отвечающие за логику игры, реа-
l06 Первый проект
лизовать механизм получения событий с клавиатуры, мыши или джойстика, воспроизведение звука. Определить, что именно будет происходить после столкновений, выстрелов, ударов и т. д. Этот метод в игре вызывается с циклической периодичностью (...30-60... кадров в секунду, те самые FPS), а точнее через определенный промежуток времени. Промежуток времени задается в автоматическом режиме через объект gameTime (при желании можно помогать XNA и создать свой таймер). То есть метод Update() - это полноценный игровой цикл, цель которого заключается в постоянном обновлении состояния игры. Предыдущая Следующая
|