Приставки
Nintendo (Dendy)
Nintendo 64
Sega Genesis
Sega CD / 32x
Master System
Super Nintendo
Turbo Grafx 16
Sega Saturn
Sony PlayStation
GameBoy Advance
GameBoy / Color
Game Gear
Atari
Другие

Утилиты
Системные утилиты
GoodXXXX
Sega CD / 32x
Nintendo 64
Переводы, хакинг
Музыка

Мир приставочных игр

Версия 2.00a

Leonis © 2002-2009
Команда Новости Помощь Ссылки
ПОМОЩЬ
Литература про игры
Предыдущая Следующая

5.5. Механизм работы программы

Изучив исходный код обоих классов Program и Gamel , необходимо разобраться с общим механизмом работы всей программы и тем, как все рассмотренные нами методы на самом деле функционируют. Итак, откомпилировав и собрав проект FirstProject, вы тем самым создали готовую программу, которая находится в папках Code\Chapter5\FirstProject\bin\x86\Release или Debug.

После запуска программы среда времени выполнения CLR ищет входную точку в приложении. Этой точкой является метод main() класса Program. Выполнение этого метода приводит к созданию нового класса Gamel. В момент создания класса Gamel управление программой на какой-то момент переходит к файлу Gamel.cs. Там происходит инициализация всех глобальных переменных класса Gamel, а затем выполнение исходного кода конструктора класса. Как только конструктор создал класс Gamel, управление программой опять возвращается к классу Program и исходному коду файла Program.cs.

После этого в работу вступает метод game.Run() класса Program. Этот метод создает системный поток и запускает цикл, в котором происходит выполнение соответствующих методов класса Gamel . В частности, первым в дело вступает метод Initialize() класса Gamel. В методе Initialize() происходит инициализация всех компонентов игры, которые в нем расположены. Затем управление программой переходит к методу LoadGraphicsContent(). Здесь происходит загрузка всей графической составляющей проекта, после чего в цикле, созданном методом game.Run() класса Program, происходит цикличное выполнение двух методов - Update() и Draw().

Метод Update() постоянно следит за обновлением состояния игры, а метод Draw() рисует графику на экране монитора. Работа этих методов выполняется до тех пор, пока не последует команда выхода из программы. Таким образом, механизм работы программы сводится к организации фактически бесконечного цикла, в котором происходит выполнение методов Update() и Draw() для постоянной смены состояния игры или цикличной смены кадров в этой самой игре.

Не так все и сложно на самом деле, не правда ли?! Достаточно хорошо продумать общую концепцию структуры будущих классов и на базе механизма работы

классов Program и Gamel реализовать свою идею. В дальнейшем мы так и будем поступать, с той лишь разницей, что параллельно изучению платформы XNA и XNA Game Studio Express мы будем создавать еще свою собственную небольшую игру.

Для того чтобы более подробно изучить работу проекта FirstProject, используйте отладчик инструментария Visual C# Express. Для этого необходимо откомпилировать проект и выполнить команды Debug = Step Into либо нажать на клавиатуре клавишу F11. Инструментарий Visual C# Express запустит механизм пошаговой отладки. Каждое последующее нажатие клавиши F11 (Debug = Step Into) будет перемещать вас на один шаг вперед в работе программы. Таким образом, можно проследить в пошаговом режиме весь механизм функционирования программы и ее устройство.


Предыдущая Следующая

Горяченькое

Друзья

Hosted by uCoz