netlib.narod.ru< Назад | Оглавление | Далее >

Глава 3. Вспомогательные классы

В пространство имен Helper я помещаю набор удобных небольших утилит и классов, которые часто могут оказаться полезными. Это может быть не самый важный или ценный код отдельного проекта, но поскольку он используется снова и снова, независимо от того, меняются ли другие части движка, вспомогательные классы становятся наиболее постоянной составляющей ваших движков и проектов. Большинство вспомогательных классов не связаны с программированием игр и могут применяться в проектах из других областей и даже для сайтов.

В предыдущей главе вы видели, что можно написать целую игру без каких-либо вспомогательных классов, да и вообще без использования любых дополнительных файлов или классов. Но когда проекты будут становиться больше и больше, вы увидите повторяющиеся шаблоны и постоянно возникающие одинаковые проблемы, которые уже были решены в прошлом. Обычно большинство повторно используемой функциональности в XNA относится к графическим компонентам. В следующей главе и особенно во второй части книги вы больше узнаете об игровых компонентах и о графическом движке. В этой главе мы сосредоточимся на базовой функциональности для регистрации сообщений в журнале, доступа к игровому содержимому, эффективного выполнения тестирования модулей, генерации случайных чисел и многих других небольших задач.

Чтобы глава была более захватывающей, вы также создадите еще одну небольшую игру для развлечения. Не все вспомогательные классы будут использоваться, но построение игрового движка — это не простая задача. Поэтому эта и следующая главы начинаются с вспомогательных классов и игровых компонентов, чтобы сделать разработку графического движка во второй части книги чуть проще. Обратите внимание, что я не писал вспомогательные классы сразу в том виде, как они представлены в этой главе; до этого состояния они развивались в течение нескольких лет. Просто добавляйте функциональность или свои собственные вспомогательные классы, когда видите нужду в этом. Если вы решили проблему один раз и думаете, что решение не понадобится вам снова, просто оставьте все как есть. Но если вы видите, что несколько раз скопировали это решение в другой проект или, может быть, в другой класс, стоит серьезно задуматься о выделении этой логики и помещении ее в отдельный класс.

Кроме того, вы немного больше узнаете о конвейере содержимого, который уже использовали в предыдущей главе для поддержки Xbox 360. Можно напрямую загружать текстуры или шейдеры не используя конвейер содержимого, но все эти методы работают только на платформе Windows. Если вы хотите создавать кросс-платформенные игры, необходимо убедиться, что все будет компилироваться и работать как в Windows, так и на Xbox 360. Мы будем так поступать на протяжении всей книги.

В конце этой главы вы быстро разработаете клон игры Breakout. Сделать это будет несколько проще, чем в предыдущей главе, поскольку к этому моменту вы уже напишете все вспомогательные классы. Например, визуализация спрайтов осуществляется очень просто, благодаря помощи класса SpriteHelper. В следующей главе вы обнаружите еще больше вспомогательных классов и игровых компонентов для усовершенствования игр Pong и Breakout.


netlib.narod.ru< Назад | Оглавление | Далее >

Сайт управляется системой uCoz