Перед вам перевод 2-ой главы книги The Game Maker’s Apprentice Game Development

for Beginners.

Примечания:

- книга писалась под 6-ую версию программы Game Maker, которая имеет незначительные отличия от, например, 8-ой версии, которой пользовался автор перевода.

- перевод может быть не всегда точно близок к тексту, но смысл не искажен.

Г Л А В А 2

Сделать игру?

Проще простого!

Проект игры: Evil Clutches

Прежде чем вы приступите непосредственно к созданию игры, неплохо бы сначала продумать, какой мы собственно хотим ее видеть. Создатели коммерческих игр обычно готовят подробную проектную документацию, прежде чем они возьмутся за саму игру. Однако, написание документов не так весело, как создание игр, поэтому мы рассмотрим наши идеи по игре в сжатой форме. Мы назовем игру, которую создадим, Evil Clutches (Злые когти) и вот ее проект:

Вы играете за маму-дракона, которая должна спасти своих детенышей от демонов. Босс демонов посылает кучу демонов уничтожить мать-дракона, чтобы не дать детёнышам убежать. Мать может отражать атаки демонов, стреляя фаерболами, но должна быть осторожна, чтобы случайно не задеть детенышей.

Кнопки управления (стрелки) позволяют двигать дракона вверх и вниз, а пробелом можно выпускать фаерболы. Игрок будет получать очки за подстреленных демонов и спасенных дракончиков. Также он будет терять очки за любого детеныша, в которого случайно попадет. Игра заканчивается, когда маму-дракона задевает демон, после чего появляется таблица рекордов. Рисунок 2-1 демонстрирует, как будет выглядеть готовая игра.

НЕ нашли? Не то? Что вы ищете?

Используя это описание, мы можем перечислить все элементы необходимые нам для создания игры: мама-дракон, босс, демоны, детеныши (дракончики) и фаерболы. При создании игры не обойтись без рисунков каждого из этих элементов, а также фона, некоторых звуковых эффектов и музыки. Все это мы называем игровым ресурсами (resource) и для вас все они уже доступны на диске с Дополнительными материалами в директории Resources/Chapter02. В этой главе мы изучим, как вставлять все эти ресурсы в игру и как ими пользоваться.

Рисунок 2-1. Вот так будет выглядеть готовая игра Evil Clutches

Спрайты

В программе Game Maker изображения драконов, демонов и вообще всех других игровых объектов называются спрайтами (sprite). Спрайты – один из типов ресурсов, использующийся в играх, их можно изготовлять из рисунков, созданных в программах для рисования или загружать из Интернета. Game Maker содержит простой редактор спрайтов, позволяющий рисовать свои спрайты, но вы можете пользоваться любой программой для работы с изображениями, которая вам удобна. Однако создание спрайтов занимает много времени, поэтому каждая игра, которую мы создадим, уже имеет готовые спрайты.

Запустите Game Maker, если вы еще не сделали это. На Рисунке 2-2 показано, как выглядит главное окно Game Maker.

Примечание. Если ваше окно НЕ выглядит точно так же как на Рисунке 2-2, то возможно вы используете Game Maker в режиме Advanced mode. Чтобы переключиться в Simple mode, найдите Advanced Mode в File (верхнее меню). Нажмите на Advanced Mode, чтобы убрать с него галочку.

Рисунок 2-2. В главном рабочем окне Game Maker (в режиме Simple Mode), меню и панель инструментов находятся вверху окна, а список ресурсов – ниже с левой стороны.

Левая сторона окна содержит различные типы ресурсов (в виде папок), которые позволяют создавать игру: спрайты (sprites), фоны (backgrounds), звуки (sounds) и т. д. В данный момент они (папки) пусты. Имена новых ресурсов появятся здесь, как только будут добавлены в игру. Меню вверху окна содержит все команды, которые позволят нам работать с ресурсами, хотя большинство задач могут быть доступны при использовании кнопок на панели инструментов. А теперь начнем, нажав команду Create Sprite, чтобы создать новый спрайт.

Создание спрайта:

1. В меню ресурсов (сверху) нажмите на значок с красным Пакменом. Это команда Create Sprite (создать спрайт). Появится окно Sprite Properties как на Рисунке 2-3.

Рисунок 2-3. Окно Sprite Properties (свойства спрайтов) для создания нового спрайта.

2. Кликните по полю Name, где написано sprite0. Это имя по умолчанию данное только что созданному спрайту, но вы должны переименовать его, назвав sprite_dragon.

3. Нажмите на кнопку Load Sprite, чтобы выбрать и загрузить подходящий Sprite.

4. Изображение дракона называется Dragon.gif и вы можете найти его в Resources/Chapter02 на диске с Дополнительными материалами. Окно Sprite Properties теперь должно выглядеть как на рисунке Рисунок 2-4.

Примечание. Избегайте использовать пробелы и знаки препинания в именах для ресурсов, так как это может запутать Game Maker, когда вы попробуете использовать его более продвинутые функции в дальнейшем. Вместо пробелов вы можете использовать символ «нижний дефис». Чтобы поставить этот дефис, нужно нажать: Левый Shift и клавишу с минусом.

Рисунок 2-4. Примерно так выглядит Окно Sprite Properties после загрузки изображения дракона

5. Нажмите ОК, чтобы закрыть окно Sprite Properties. Вот и все, вы только что создали спрайт (sprite).

Спрайт дракона должен был добавиться в список спрайтов в списке ресурсов (папки Sprite, Object и т. д. слева). Если вам нужно будет изменить свой ресурс, вы можно открыть его свойства (Sprite Properties) двойным щелчком по его имени в списке ресурсов. Попробуйте сделать это и снова взгляните на свойства спрайта (Рисунок 2-4).

Окно Sprite Properties говорит нам о том, что в спрайте содержится 6 рисунков (Number of subimages). Спрайты часто состоят из нескольких изображений проигрываемых друг за другом (как кадры в фильме), что создает иллюзию движения. Если вы просмотрите изображения дракона, используя синюю стрелку, вы заметите, что там на самом деле есть только два разных изображения, которые несколько раз повторяются. Их проигрывание создает впечатление, что дракон машет своими крыльями вверх-вниз.

Галочка рядом с Transparent означает, что фон спрайта дракона невидим. Рисунок 2-5 демонстрирует разницу между рисунком с прозрачным фоном и не прозрачным фоном. Разница налицо!

Рисунок 2-5. Здесь изображены спрайт дракона с прозрачным фоном (при включенной галочке Transparent) и спрайт с видимым фоном (галочка Transparent отключена).

Примечание: Game Maker принимают за цвет фона тот, который находится в верхнем левом углу изображения. Помните об этом при создании своих спрайтов.

Итак, давайте создадим другие спрайты для игры тем же путем.

Создание остальных спрайтов для Evil Clutches:

1. Нажмите Create Sprite из меню ресурсов (красный Пакмен)

2. В поле Name (имя) окна Sprite Properties, наберите имя: sprite_boss

3. Нажмите кнопку Load Sprite (загрузить спрайт) и выберите Boss. gif

4. Нажмите ОК, чтобы закрыть окно Sprite Properties.

5. А теперь создайте спрайт демона (Demon), спрайт детеныша (Baby), и спрайт фаерболла (Fireball) таким же образом, используя Demon.gif, Baby.gif и Fireball.gif. Дайте каждому спрайту подходящее имя (используйте только буквы и символ ‘_’).

Таким образом, мы сделали все нужные спрайты.

Объекты

Спрайты сам по себе ничего не делают. Они только хранят картинки элементов игры (то есть драконов, демонов и т. д.). Объекты (Object) – части игры, которые контролируют движение спрайтов и их взаимодействие друг с другом. Начнем создание нашего первого Объекта.

Объект Босса

Следующие шаги создадут новый объект со своим спрайтом.

Создание нового объекта и присвоение ему спрайта

1. В меню ресурсов (вверху) выберите Create Object (изображение синего шара).

Окно Object Properties изображено на Рисунке 2-6.

Рисунок 2-6. Окно Object Properties

2. В поле Name дайте объекту имя object_boss.

3. Кликните здесь:

Появится список всех созданных вами спрайтов. Выберите спрайт sprite_boss.

Внимание! Имена объектов и имена спрайтов не должны совпадать! Поэтому мы не называем спрайт босса и объект босса просто boss, а именно object_boss и sprite_boss. Добавление к именам префиксов вроде “sprite_” или “object_” позволяет легко придумывать новые имена.

События и Действия

Game Maker использует события и действия, чтобы указывать объектам их поведение. Events (события) – то, что происходит в игре, когда например объекты сталкиваются или игрок нажимает клавишу на клавиатуре. Actions (действия) – то, что происходит в ответ на event (событие), как например, изменение направления объекта, кол-ва очков или проигрывание звука. Игры на Game Maker – по существу просто набор объектов (objects), которым действия (actions), указывают, как те должны реагировать на различные события (events). Поэтому, чтобы задать поведение объекта вы должны определить на какие события (events) будет реагировать объект (object) и какие действия (actions) должны будут выполняться в ответ на события (events).

В данный момент для Босса демонов список событий (events) и список действий (actions) пусты. Мы начнем с добавления события и действия, благодаря которым Босс будет двигаться вверх по экрану. А затем мы добавим действие (action), которое заставит Босса двигаться в противоположную сторону от края экрана, когда он достигнет его (вниз – от верхнего края и вверх – от нижнего).

Добавление события (event) для объекта Босса:

1. Нажмите на кнопку Add Event. Появится окно Event Selector со списком событий как на рисунке 2-7.

Рисунок 2-7. Окно Event Selector

2. Нажмите по событию Create, чтобы добавить его в список событий. Добавленное событие будет выделено синим цветом как на Рисунке 2-8.

Рисунок 2-8. Так выглядит окно Object Properties с именем, спрайтом и событием Create.

*3. Следующее что вам нужно сделать, это включить действие Move Fixed в список действий (Actions). Чтобы сделать это нажмите и удерживайте левой кнопкой мыши картинку с 8-ю красными стрелками, затем перетащите ее в список действий (Actions), и отпустите кнопку мыши.

Рисунок 2-9. Окно Move Fixed

4. Выберите верхнюю синюю стрелку в Directions (направления) и введите 8 в поле Speed (скорость). Это будет заставлять объект двигаться по вертикали на 8 пикселов при каждом шаге.

5. Нажмите ОК, чтобы закрыть окно Move Fixed. Действие (action) будет добавлено в список действий.

Примечание: все действия (actions) программы Game Maker, организованы во вкладках справа от списка Actions. Просмотрите эти вкладки, чтобы увидеть все различные действия. Чтобы узнать имя какого-нибудь действия, наведите курсор на его значок.

Итак, мы добавили событие, заставляющее босса двигаться вверх. А сейчас мы добавим событие, которое будет изменить вертикальное направление (вверх-вниз) объекта, при его столкновении с краем экрана. Это событие называется Intersect Boundary (пересечение границы), потому что оно вызывается, когда спрайт объекта пересекает границу экрана.

Добавление Intersect Boundary:

1. Кликните по кнопке Add Event.

2. Выберите Other и в появившемся меню найдите Intersect boundary. Это событие должно добавиться в список событий.

3. Поместите действие Reverse Vertical в список действий для события Intersect boundary. Окно Reverse Vertical изображено на Рисунке 2-10.

Рисунок 2-10. Окно Reverse Vertical.

4. Менять в этом окне ничего не нужно, просто нажмите ОК. Окно Object Properties теперь должно выглядеть как на Рисунке 2-11.

Рисунок 2-11. Окно Object Properties с добавленными в него 2 событиями (Events), и соответствующими действиями (Actions).

Все эти события и действия нужны нам будут прямо сейчас. Вы можете переключать между разными событиями, кликая по ним в списке Events. Выбранное событие (event) будет выделено синим и действия (actions) для этого события будут отображены в списке Actions. Вы можете редактировать свойства каждого действия двойным щелчком мыши по ним. Но в данный момент мы уже закончили работать с объектом босса, так что ничего делать не нужно.

5. Нажмите ОК в левом нижнем углу окна Object Properties , чтобы закрыть его.

Объект дракона

А теперь давайте обратим наше внимание на героиню игры. Мы начнем создание объекта для мамы-дракона таким же способом, каким создавали объект босса.

Создание объекта дракона:

1. В меню ресурсов выберите Create Object (синий шар).

2. Назовите объект object_dragon (используя поле Name).

3. Выберите для объекта спрайт sprite_dragon.

Дракон также должен уметь двигаться вверх-вниз по экрану, но делать он это будет, подчиняясь нажатию клавиш на клавиатуре. Чтобы добиться этого, мы используем события (events) для клавиатуры.

Добавление событий клавиатуры для объекта дракона:

1. Нажмите на Add Event.

2. Выберите событие Keyboard и в открывшемся меню выберите <Up>.

3. Включите Move Fixed в список действий (Actions).

*4. В окне действия Move Fixed, выберите направление вверх (верхняя стрелка) и поставьте в поле Speed – 16.

*5. Проделайте то же самое, чтобы добавить событие Keyboard <Down>. В него также поставьте действие Move Fixed с направление вниз (нижняя стрелка) и Speed = 16. Окно Object Properties должно выглядеть также как на Рисунке 2-12.

Нам нужно добавить еще одно событие (event) и еще одно действие (action) чтобы движение дракона работало корректно. Наши Keyboard-события запускают движение дракона, когда игрок жмет клавиши, однако дракон будет двигаться бесконечно, даже если клавишу отпустить. Дабы исправить это, мы используем событие Keyboard, <no key>, чтобы знать, когда игрок перестает жать на клавиши.

Рисунок 2-12. Так выглядит окно Object Properties для дракона, после добавления событий <Up> и <Down>

Добавление события <no key>:

1. Нажмите Add Event

2. Нажмите Keyboard и выберите <no key> из всплывающего меню

*3. Включите Move Fixed в список действий (Actions) для этого события.

4. Нажмите на центральный квадрат в окне действия Move Fixed (это будет означать, что движения не будет) и поставьте для Speed: 0. Окно должно выглядеть также как на Рисунке 2-13.

Рисунок 2-13. Эти настройки останавливают движение дракона.

5. Это все действия, которые нам нужны, чтобы заставить дракона двигаться вверх-вниз, поэтому нажмите ОК.

Внимание. Когда вы выставляете Move Fixed со Speed=0 (то есть скоростью равной нулю), вы обязательно должны нажимать на центральный синий квадрат! Иначе действие (action) проигнорируется программой!

Комнаты

Объекты дракона и босса уже готовы. Но для того чтобы использовать их в игре, нужно поместить их в уровни. Уровни в Game Maker создаются комнатами (room) в которые добавляются объекты игры. Не все объекты появляются с самого начала игры, некоторые появляются только в ее процессе (как фаерболы, например). Итак, давайте создадим новую комнату.

Создание новой комнаты (Room):

1. Выберите Create Room из меню ресурсов. Появится окно Room Properties (Рисунок 2-14).

Рисунок 2-14. Окно Room Properties.

Примечание. Не забывайте – если видны ползунки по краям Room Properties , значит, вы видите только часть комнаты! Имейте это в виду при создании уровня.

2. Нажмите по вкладке settings в левом верхнем углу окна Room Properties.

3. Введите имя для комнаты в поле Name. Назовите комнату так: room_first.

4. Введите заголовок Evil Clutches в строку заголовка окна (Caption for the room). Теперь настройки Room Properties должны выглядеть как на Рисунке 2-15.

Рисунок 2-15. Настройки окна Room Properties.

А сейчас мы можем поместить объекты в новую комнату (Room).