Создание игрового цикла - каркаса для XNA приложений.
Итак в нашем проекте есть всего лишь один файл с кодом класса Program:
usingSystem; usingSystem.Collections.Generic; usingSystem.Text; namespace Tutorial1 { class Program { staticvoid Main(string[] args) { } } }
Шаг 2. Наследуйте уже имеющийся в вашем распоряжении класс Program от класса Game, определённого в пространстве имён Microsoft.Xna.Framework. Так как мы добавили ссылку на пространство имён Microsoft.Xna.Framework, то мы можем указать просто имя класса Game.
class Program :Game { staticvoid Main(string[] args) { } }
Шаг 3. Объявите в классе Program поле graphics типа GraphicsDeviceManager который определён в пространстве имён Microsoft.Xna.Framework. С помощью этого объекта мы будем иметь возможность выводить графику на экран.
class Program : Game { GraphicsDeviceManager graphics; staticvoid Main(string[] args) { } }
Шаг 4. Создайте конструктор класса Program. Добавьте в него код создания экземпляра графического компонента GraphicsDeviceManager и добавления его в список компонентов класса Program:
class Program : Game { GraphicsDeviceManager graphics; public Program() { graphics =new GraphicsDeviceManager(); } staticvoid Main(string[] args) { } }
Шаг 5. Переопределите в классе Program методы унаследованные от класса Game - Update() и Draw(). Эти методы вызываются при запуске приложения, при необходимости обновить состояние приложения, при необходимости отрисовать сцену и перед закрытием приложения соответственно.
class Program : Game { GraphicsComponent graphics; public Program() { graphics =new GraphicsDeviceManager(); } protectedoverridevoid Update(GameTime gameTime) { // обновить состояние объектов } protectedoverridevoid Draw(GameTime gameTime) { // отрисовать сцену } staticvoid Main(string[] args) { } }
Шаг 6. Добавьте в метод отрисовки цены Draw() команды отчистки экрана и вывода сцены на экран:
protectedoverridevoid Draw(GameTime gameTime) { // отчистка экрана в синий цвет graphics.GraphicsDevice.Clear(Color.Blue); base.Draw(gameTime);// вывод сцены }
Шаг 7. Добавьте в статический метод Main код создания объёкта класса Program и запуска игрового цикла путём вызова метода Run(), который был унаследован классом Program от класса Game:
Итак, метод Main() - это точка входа в программу и именно с него начинается работа всей программы. Здесь мы создаём экземпляр нашего класса Program и вызовом метода Run() запускаем игровой цикл внутри класса Program.
В самом начале работы цикла вызывается метод LoadContent() - в нём мы можем сделать все необходимые приготовления, например, загрузить из файлов модели, текстуры и т.д.
Далее во время выполнения игрового цикла на каждом его шаге вызывются по очереди методы Update() и Draw(). В первом мы можем, например, обработать вводимые пользователем данные и(или) вычислять смещение у тех объектов которые должны двигаться. Во втором мы должны отрисовать сцену в экран.
Метод Draw() как правило всегда начинается с вызова методов отчистки экрана и заканчивается с выводом сцены на экран.
Перед закрытием приложения вызывается метод UnloadContent() - в нём мы можем освободить память от загруженных ранее ресурсов (моделей, текстур и т.д.)
Теперь при запуске приложения мы увидим пустое окно окрашенное в синий цвет.
1285 Прочтений • [Урок 2. Как создать простой игровой цикл] [08.08.2012] [Комментариев: 0]