Шаг 10: Счёт, жизни и прочие объекты
Счет является важной частью любой игры: он говорит, насколько хорош игрок. Его награда и признак достижения. Наша игра должна иметь счет, чтобы игрок мог зарабатывать очки за уничтожение блоков. Это часть весёлой и сложной игры.
Нам также нужно отображать количество жизней, которое имеет игрок. Без ограниченных жизней игра была бы слишком легкой, и нашему игроку стало бы скучно. В арканоид играх игрок обычно теряет жизнь, когда он пропускают мяч. Итак, это будет наше условие для того, чтобы отнять одну жизнь.
Часть удовольствия от создания игры - принимать решения. Мы должны решить, сколько очков мы будем давать для награждения игрока и сколько жизней должно быть при старте. Давайте добавим еще немного удовольствия и проблем в игру:
Вернемся к редактору кадров (щелкните значок на панели инструментов).
Мы собираемся открыть еще несколько новых объектов. Объекты, которые мы использовали до сих пор (мяч, кирпичи, стены) называются активными объектами. Активные объекты - наиболее используемые объекты в игре: они могут перемещаться, сталкиваться, и их можно анимировать. В Clickteam Fusion 2.5 есть еще много объектов, и у них разные свойства. Clickteam Fusion 2.5 прост, но это не значит, что он не является гибким и мощным. Итак, давайте найдём несколько новых объектов и посмотрим, что они могут нам помочь!
Объект Quick backdrop
В библиотеке найдите вызов объекта «Sky». Перетащите его на фрейм. Как вы можете видеть, этот объект является градиентом синего цвета и выглядит очень красиво на нашем игровом поле. Вы также заметили, что этот объект автоматически попадает в фоновый режим позади всех других объектов: он называется объектом Quick Backdrop. Объекты с быстрым фоном - это простые цветные фоны. У них не так много свойств, их нельзя перемещать, и они не мешают вообще активным объектам. Они просто здесь, как фон, для улучшения картинки. Их можно настроить на форму эллипса или линию, и вы можете определить для них цветную рамку.
Нажмите на объект неба, чтобы выбрать его, сразу его свойства появляются на панели инструментов свойств. Как вы можете видеть, есть много свойств, которые вы можете изменить: не стесняйтесь поэкспериментировать. Если вы испортите свой объект неба, вам нужно будет уничтожить его и вернуть его из библиотеки.
Объект Score
Нам нужен объект для отображения оценки. Clickteam Fusion 2.5 предоставляет один объект, предназначенный для этого: объект Score. Мы не найдем объект оценки в библиотеке (он может находиться там, мы просто не вставляем его), но мы собираемся создать объект с нуля.
Откройте меню «Insert» в верхней строке меню и выберите опцию «New object».
Он открывает диалоговое окно со списком объектов. Это все доступные объекты в Clickteam Fusion 2.5: как вы можете видеть, их много, и это то, что дает Clickteam Fusion 2.5 возможность делать то, что вы хотите. В левой панели окна нажмите на название " Game ": на экране будут отображаться только игровые объекты. Найдите объект Score в списке и дважды щелкните по нему.
Это действие закрывает меню. Указатель мыши, отображаемый как крест, теперь несет объект, щелкните где-нибудь в нижней части области воспроизведения. Теперь ваш объект размещён. Если вы посмотрите на панели инструментов свойств, вы увидите, что игрок, затронутый этим объектом оценки, является игроком 1. Теперь перетащите номер в удобное место в левом нижнем углу игровой зоны: это отобразит наш результат.
Объект Lives
Нам нужно отобразить количество жизней для игрока во время игры. Для этого мы будем использовать объект Lives. Как и раньше, мы собираемся создать этот объект с нуля, поскольку он не существует в библиотеке.
Что касается объекта оценки, выберите опцию «Insert» / «new object» в главном меню. Нажмите «Game» и найдите объект Lives в списке. Дважды щелкните по нему в поле, а затем щелкните где-нибудь в области воспроизведения. Затем удалите объект Lives в нижнем правом углу игровой зоны.
Совет. В свойствах счетчика вы можете установить начальное значение, а также самые высокие и самые низкие номера, с которыми он сможет работать. Очень важно использовать эти настройки для процентных баров, или вы не можете видеть, что они вообще что-то делают при запуске приложения.
Шаг 11: Завершение игры
Если вы запустите свою игру, вы увидите, что счет и жизнь теперь отображаются, но они не меняются: нам нужно ввести действия, которые будут их изменять.
Вернитесь к редактору событий.
Score.
Мы хотим добавить очки к счету, когда мяч разрушает кирпич. Как вы можете себе представить, мы должны добавить новое действие на линии, где выполняется столкновение между кирпичом и мячом. Найдите эту линию и передвиньте мышь горизонтально под объектом Player 1. Щелкните правой кнопкой мыши на пустой квадрат, расположенный на пересечении. Откроется меню действий объекта 1. Как вы можете видеть, это меню содержит опции для изменения как количества жизней, так и оценки. Выберите опцию «Add to score».
Примечание. Как вы заметили, действие «Add to score» расположено под объектом Player 1
http://telegra.ph/file/809a417da8e2830479cb3.png
, а не под объектом Score.
Появится новое диалоговое окно: редактор выражений. Это диалоговое окно позволяет выполнять вычисления (и даже сложные) в Clickteam Fusion 2.5. На данный момент просто введите число 100 в зону белого редактирования и нажмите «ОК».
Вводится новое действие. Если вы попробуете запустить свою игру, вы увидите, что счет теперь увеличивается по мере уничтожения кирпичей.
Жизни.
Объект Lives автоматически начинается с трех жизней, просто числа, который мы хотим!
Подумаем немного. Мы хотим вычесть одну жизнь, когда игрок пропускает мяч, и он выходит из нижней части игрового поля. Это дает нам следующее событие: «Когда мяч покидает область внизу / вычитает одну жизнь из игрока» (When the ball leaves the area in the bottom / Subtract one life from the player). Поэтому нам нужно ввести новую строку события.
Вы, конечно, знаете эту процедуру: нажмите «Новое условие» и щелкните правой кнопкой мыши по мячу, чтобы открыть меню условий. Теперь найдите опцию «Test position of BallGolden», это тот, который мы хотим использовать. Он сразу же открывает новое диалоговое окно для выбора стороны проверки. Выберите только «Покидает в нижней части» (Leaves in the bottom) и нажмите «ОК».
Теперь у нас есть новая линия:
http://telegra.ph/file/c51a1df82aceb085224db.png
Теперь мы можем ввести действие, чтобы вычесть его из числа жизней. Вы должны иметь возможность сделать это самостоятельно: найдите квадрат под объектом «Player 1» перед нашим новым условием и щелкните правой кнопкой мыши. Затем выберите «Subtract from number of lives» и введите 1 в редакторе выражений.
Примечание. Как вы заметили, действие «Subtract from number of lives» расположено под объектом Player 1, а не под объектом Lives.
Мы могли бы также «потерять» шум, когда игрок теряет один мяч: откройте меню действий «Sound object» и выберите «Play sample». Найдите каталог, в котором мы извлекли ранее звуки, и выберите файл: «DOWN01.WAV». Перед закрытием звукозаписывающего устройства отметьте маленький флажок в правом нижнем углу окна «Бесперебойный» (Uninterruptable): звук будет воспроизводиться полностью и не будет прерван другими звуками.
Если вы запустите свою игру, вы увидите, что все работает очень хорошо, за исключением одного: когда мяч покидает игровое поле внизу, он потерян навсегда! Мы должны запрограммировать действие, чтобы вернуть его! Давай сделаем это.
Разместите свою мышь в той же строке, что и раньше, под объектом BallGolden и щелкните правой кнопкой мыши. В меню Action мяча найдите опцию "Position" / "Select position". Эта опция автоматически отображает рамку, чтобы вы указывали на новую позицию объекта. Поместите мигающий крест посередине рамки, под кирпичами, и нажмите ОК.
Теперь мы ввели новое действие, которое автоматически позиционирует мяч в центре экрана, когда оно исчезает внизу. Попробуйте свою игру: она работает, но вы сразу замечаете, что очень сложно захватить мяч, когда он возвращается в игровой зоне: он идет на дно с высокой скоростью, и большую часть времени игрок пропускает его.
То, что нам нужно сделать - это сразу после изменения положения мяча в игровой зоне, чтобы изменить направление на верх. Это можно сделать с помощью простого действия: найти галочку с действием позиции и щелкнуть правой кнопкой мыши по ней (ничто не мешает нам иметь более одного действия за галочку). В меню действий выберите опцию «Направление» / «Выбрать направление» ("Direction" / "Select direction"). Это открывает диалоговое окно, аналогичное тому, которое мы нашли при настройке свойства движения шара. Выберите только направления, указывающие вверх: одно направление будет выбрано для того, чтобы мяч выполнялся произвольно во время выполнения.
Если вы протестируете свою игру, вы заметите, что геймплей сейчас очень хорош! Похож на игру, эй?
Шаг 12: таблица лучших результатов
Последнее, что нужно сделать, чтобы внести некоторые штрихи в нашу игру: определить, когда число жизней равно нулю, и когда это произойдет, игра заканчивается. Это можно сделать очень просто: нажмите New condition и в диалоговом окне «New condition» щелкните правой кнопкой мыши на объекте «Player 1». Выберите вариант «Compare to player's number of lives».
Это открывает редактор выражений: просто нажмите ОК, мы хотим сравнить с нулем.
Теперь действие: щелкните правой кнопкой мыши под объектом Storyboard и выберите опцию Next Frame.
Вы, безусловно, понимаете, что когда число жизней достигнет нуля, Clickteam Fusion 2.5 автоматически переключится на следующий кадр. Следующий кадр? Но еще нет рамки! Ну, мы собираемся создать новый кадр с таблицей лучших результатов.
New Frаme
Для этого нам нужно отобразить Storyboard editor. Помнишь, самый первый редактор, с которым мы столкнулись? Ну вот и все. Нажмите на значок Storyboard editor на панели инструментов.
Storyboard editor - это место, где вы можете иметь общий вид приложения: он отображает все кадры один за другим. На данный момент у нас есть только один кадр. Мы собираемся добавить новый фрейм. Нажмите кнопку «2»:
Вы можете сразу увидеть, что новый фрейм добавлен в наше приложение. Теперь мы собираемся отбросить некоторые объекты в кадр: нажмите кнопку «2», чтобы перейти к редактору Frame.
Прежде всего, мы собираемся разместить фоновый объект с красивым рисунком. Найдите объект ScreenHighScore в окне библиотеки и перетащите его в рамку. Расположите его так, чтобы он покрывал всю белую область фона.
Теперь объект Hi-Score. Выберите опцию "Insert" / "New object" в главном меню и выберите объект Hi-score. Отпустите его в середине кадра. На панели инструментов свойств теперь вы можете увидеть все свойства объекта. Не стесняйтесь экспериментировать. Не забудьте изменить шрифт объекта, щелкнув вкладку «Параметры текста» на панели инструментов свойств. Лично я выбрал шрифт Arial Bold размером 20.
Теперь нам нужно запрограммировать события нашего маленького кадра с лучшими результатами. Нажмите кнопку «Редактор событий» на панели инструментов. Как вы можете видеть, список событий пуст. То, что мы хотим сделать, просто: отобразить таблицу с лучшими результатами в течение 10 секунд, а затем перезапустить игру.
Вы можете догадаться, что мы будем использовать объект Timer для этого. Нажмите «New condition» и в диалоговом окне «New condition» щелкните правой кнопкой мыши объект «Timer». Выберите параметр «Является ли таймер равным определенному значению» (Is the timer equal to a certain value).
И в следующем диалоговом окне введите 10 секунд (вы можете перетащить ползунок или ввести номер).
Теперь для действия. Наведите указатель мыши на объект Storyboard Controls и щелкните правой кнопкой мыши. В меню действий выберите вариант «Перезапустить приложение» (Restart the application).
Теперь вы можете играть в свою игру с самого начала. Для этого не нажимайте на значок Run Frame, как вы привыкли делать, но нажмите значок «Запустить приложение» (Run application).
Шаг 13: Заглавный экран
Наша игра почти завершена. Тем не менее, нам кажется, что отсутствует титульная страница.
Для титульной страницы мы хотим вставить новый фрейм, поэтому щелкните значок редактора раскадровки.
Затем нажмите кнопку «3» и, как прежде, выберите создание кадра. В конце приложения добавляется новый кадр. Теперь нажмите на пустую зону рядом с номером 3, удерживайте клавишу мыши и перетащите рамку поверх первой.
Отпустите мышь, новый кадр теперь является первым в приложении.
Давайте отредактируем фрейм: нажмите кнопку 1, чтобы открыть редактор кадров.
Найдите в библиотеке объект с именем: ScreenTitle и поместите его в рамку. Расположите его так, чтобы он полностью покрывал белую область.
Мы собираемся разместить объект Button в этом фрейме: чтобы начать игру, вам нужно нажать на кнопку. Выберите опцию «Insert" / "New object» в главном меню и нажмите «Interface» в левой панели. Затем выберите объект Button в списке отображаемых объектов. Затем разместите этот объект на фрейм.
Свойства нового объекта кнопки отображаются на панели инструментов свойств. Нам нужно изменить текст кнопки: щелкните по свойству «Текст» и введите «Play» в зоне редактирования.
Затем измените размер кнопки и расположите ее по своему желанию.
Теперь нам нужно определить событие для этого фрейма. Нажмите кнопку «Редактор событий» (Event editor). Это событие прост: когда пользователь нажимает на кнопку, мы переходим к следующему кадру. Вы должны иметь возможность самостоятельно вводить это событие без объяснения причин. Попробуйте, прежде чем читать следующий текст.
Если вы забыли, вот, вот напоминание:
Нажмите «New condition», чтобы открыть диалоговое окно «New condition». Щелкните правой кнопкой мыши объект Button и выберите опцию «Button clicked?». Это наше условие. Теперь для действия: щелкните правой кнопкой мыши на пустом квадрате под элементом управления раскадровки и выберите в меню пункт «Next Frame».
Наша игра закончена! После того, как вы сыграете в свою игру некоторое время, посмотрите, сможете ли вы найти кого-нибудь, чтобы попробовать посоревноваться. Это половина удовольствия от создания игр. Это хорошее чувство, когда кому-то нравится то, что вы создали.