Невозможно пройти тесты, в окне с вопросами пусто |
Многоуровневые игры
Листинг 21.5. содержит коды классов Brick1, Brick2 и BrickBuilder. Эти классы наследованы от gBaseClass и не вносят в его функциональность никаких дополнений.
using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; namespace P15_1 { public class Brick1 : gBaseClass { public Brick1(Game game, ref Texture2D _sprTexture, Vector2 _sprPosition, Rectangle _sprRectangle, int x_c, int y_c) : base(game, ref _sprTexture, _sprPosition, _sprRectangle, x_c, y_c) { } } }Листинг 21.5. Коды классов Brick1, Brick2 и BrickBuilder
using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; namespace P15_1 { public class Brick2 : gBaseClass { public Brick2(Game game, ref Texture2D _sprTexture, Vector2 _sprPosition, Rectangle _sprRectangle, int x_c, int y_c) : base(game, ref _sprTexture, _sprPosition, _sprRectangle, x_c, y_c) { } } } using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; namespace P15_1 { public class BrickBuilder : gBaseClass { public BrickBuilder(Game game, ref Texture2D _sprTexture, Vector2 _sprPosition, Rectangle _sprRectangle, int x_c, int y_c) : base(game, ref _sprTexture, _sprPosition, _sprRectangle, x_c, y_c) { } } }
21.2. Выводы
В этой лабораторной работе мы создали игру, предусматривающую несколько игровых уровней и конструктор уровней для пользователя. Как правило, разработка реальных игр включает в себя создание конструктора уровней, с помощью которого разработчик создает игровые уровни. Этот конструктор можно включить в поставку игры, предоставив пользователю возможность самостоятельно создавать новые уровни к игре. Конструкторы уровней так же разнообразны, как сами игры.
Здесь мы храним данные по уровням в массивах. Вполне возможны и другие подходы к хранению подобных данных. Более того, если массивы или другие структуры данных, хранящие информацию об уровнях, будут занимать слишком много системной памяти, это нельзя назвать рациональным её использованием. Поэтому на практике механизм хранения информации об уровнях хотя и может основываться на массивах, выглядеть может по-другому. Например, данные по уровням хранятся в файлах и подгружаются по мере необходимости.
21.3. Задание
В этой лабораторной работе мы создали макет игры, допускающей использование нескольких уровней и содержащей конструктор уровней. Доработайте этот макет. А именно, выполните следующие улучшения исходного проекта:
- Переработайте процедуры обработки столкновений мяча с блоками. Мяч должен отскакивать от блоков точно так же, как он отскакивает от границ экрана.
- Создайте интерфейс игры – меню, систему справки.
- Предусмотрите сохранение пользовательского уровня в файл (с помощью сериализации специально созданного объекта) и загрузку его из файла.
- Создайте систему подсчета очков, предусмотрите сохранение данных о набранных очках в файле.
- Улучшите процесс прохождения игры – разработайте дополнительные уровни, сделайте игровой процесс разнообразнее, разработав бонусные объекты, которые появляются при уничтожении некоторых из блоков. Игрок должен "поймать" бонусный объект битой для того, чтобы активировать соответствующий бонус.