Создание игры «Hidden Object Game» — различия между версиями
Agrom (обсуждение | вклад) (→СЧЕТЧИК) |
Agrom (обсуждение | вклад) (→ПРОГРЕСС) |
||
Строка 180: | Строка 180: | ||
[[Файл:777.png]] | [[Файл:777.png]] | ||
− | Во всех HiddenObject изменить параметры и свойства объекта combo3c | + | Во всех HiddenObject изменить параметры и свойства объекта combo3c [[Файл:1818.png]] |
− | |||
− | |||
Настройки для машины-блокатора «ban_H» (machine) : | Настройки для машины-блокатора «ban_H» (machine) : |
Версия 15:25, 17 февраля 2016
Урок 6 << | Оглавление | >> Урок 8 |
---|
Цель: Изучить настройки объектов HiddenObjectList, HiddenObject и Table для типа механики Hidden Object Game на базе создания уровня из игры Travel.
Задача: Создать уровень игры содержащей 10 поисковых объектов расположенных на одном бэкграунде (фоне). При инициализации сцены обеспечить размещение 5 объектов для поиска.
Создание экрана и сцены в игровом проекте
Откроем проект lessons. Создадим экран Lesson_7.
В экране Lesson_7 создадим новую сцену* stg_7 с разрешением 960*640 (по умолчанию), в которую (через ResourcesEditor) добавим графические ресурсы из папки Lesson_7. (см. подготовка к работе Создание проекта)
- Для корректной работы на мобильном устройстве необходимо настроить параметр.
- Графические объекты должны разместиться точно на местах предназначенных для их «Прятанья».
Создадим папку Lesson_7 в базе текстовых описаний с помощью TextEditor. Добавим в неё 10 текстовых записей, соответствующих именам поисковых объектов. Заполним для каждой текстовой записи значение Word, Sentence-En, добавим графическое отображение поискового объекта. Сделать это можно вручную, перетащив картинку соответствующего объекта из редактора ресурсов и, по нажатию на картинке правой кнопкой мыши, выберем тип "icon1". Или же более быстрым способом.
Общая настройка объектов
1. Для всех поисковых графических объектов изменить тип с image на HiddenObject.
2. Создать специальные объекты Table и HiddenList. Для этого необходимо перенести графическое изображение table с последующим изменением типа с image на Table. Название объекта изменить на HOT**
3. Для объекта HiddenList перенести любое графическое изображение с последующим изменением типа с image на HiddenList и удалением графического ресурса из поля настроек (res)*. Для данного типа объекта не требуется графический ресурс. Название объекта изменить на HOL**
** Имена для специальных объектов могут использоваться любые.
Детальная настройка объектов
1. Описание HiddenObject.
HiddenObject - это поисковый объект, взаимодействующий со списком HiddenList. Каждому поисковому объекту необходимо указать графический ресурс (картинку), идентификатор объекта HiddenList и идентификатор текстового ресурса (строки описания) в HiddenList.
Необходимо выбрать используемый объект с именем HOL (тип HiddenObjectList) в поле list.
текстID – название хидден-объекта, которое будет отображаться в списке. Перетаскивается мышкой из текстового редактора;
текст – обычный текст (будет отображаться в таблице при отсутствии ТекстID, для быстрых экспериментов);
list – ссылка на HiddenList, к которому будет подключен объект, для обеспечения связи между ними;
flyer – объект типа flyer, который запустится в работу при нахождении поискового объекта. Неудачный клик обрабатывает HiddenList. Если параметр не задан, используется fly_ok объекта HiddenList.(objid);
actor – объект, который отображает анимацию спрятанного объекта после удачного клика на него (обычно это машина состояния). Парметр необязателен. Актёры нужны тогда, когда отличается графика объекта, который непосредственно находится на сцене и который летит к таблице. Это может быть случай, когда на сцене лежит часть объекта, а летит целый. Или же на сцене - с тенью, а летит - без.
тип – номер типа объекта, используется для логического разделения объектов при обработке HiddenList.
2. Описание HiddenObjectList.
HiddenList - это список поисковых объектов (Hidden), которые надо найти в хидден-сцене.
Каждый поисковый объект на сцене связывают со списком. Объектов может быть больше, чем будет показано в данной игровой сессии (поле "объектов"). В этом случае они выбираются случайным образом. Запоминаются те из них, по которым произошёл клик (увеличивается счетчик их кликов). При следующем заходе на сцену, поисковые слова сортируются по возрастанию числа кликов и снова активизируется количество спрятанных объектов, указанных в поле "количество".
HiddenList определяет основные параметры для настройки HiddenObject (скорость полета и т.п.). В дальнейшем, при необходимости, эти же параметры можно добавить в HiddenObject, чтобы для данного объекта они "перебивали" общие значения для всех.
Подготовка спрятанных объектов:
num (поле "объектов") – максимальное количество объектов, участвующие в поиске. (int)
hide (поле "прятать") – если 1, то делать невидимыми объекты, не участвующие в поиске. (int)
Визуальные параметры списка:
table (поле "таблица") – идентификатор объекта Table. (objid)
kind (внешний вид - поле "тип списка") – тип отображения объекта в списке (0-слово,1-ассоциация, 2-иконка, 3-иконка). (int)
cross (внешний вид - поле "вычеркнуть") – зачеркивать найденный элемент списка. Eсли 0 (по умолчанию), то найденный элемент удаляется, иначе "зачеркивается".(int).
3. Описание Table
6. Параметры, общие для всех спрятанных объектов:
die – тип исчезания при удачном клике на объект (если нет актера) (int):
0: просто исчезает;
1: летит к пункту с описанием в списке HiddenList;
2: улетает в случайном направлении;
3: улетает к заданным координатам (fx, fy).
vm - скорость движения при полете к списку предметов после клика в px/sec (float)
vr - скорость вращения при полете к списку предметов после клик в град/sec (float)
fw - финальная ширина к которой надо уменьшится при подлете к финальной точке (int)
fh - финальная высота к которой надо уменьшится при подлете к финальной точке (int). Объект не должен изменять своих пропорций, поэтому fw или fh (или оба) всегда отрицательны.
fx - финальная координата x, к которой объект должен перелететь, при удачном клике (см. тип исчезания). (int)
fy - финальная координата x, к которой объект должен перелететь, при удачном клике (см. тип исчезания). (int)
Упражнения
1. Щелкнув правой кнопкой мыши по экрану Lesson_7, создать новый экран Lesson_7_1.
2. Создать новую сцену (с названием stg_7_1).
3. Скопировать все объекты из сцены stg_7 (экрана Lesson_7).
4. Вставить скопированые объекты в новую сцену stg_7_1.
5. В новой сцене:
a) добавить еще 3 графических ресурса и перевести в тип HiddenObject;
b) разместить на местах предназначенных для их «Прятанья»;
c) добавить текстовое описание в TextEditor;
e) установить время игры 20 секунд, паузу 2 секунды с переходом на экран Lesson_7_1.
6. Модифицировать экран Lesson_7 в полноценный уровень с выводом количества очков, игрой на время и графикой.
Упражнение № 6
Экран lesson_7 необходимо модифицировать в полноценный уровень.
Для этого первый экран дополняем 2 счетчиками (counter), таймером (timer), машиной-блокатором (machine), машиной-комбо3 (machine) и прогрессом (progress). Второй экран с выводом очков составим позже.
Счетчик «amt» (counter) показывает сколько объектов найдено. Счетчик «score_H» (counter) насчитывает баллы за собранные объекты. Таймер (timer) запускается при старте игры и отсчитывает заданное время на игру, машина-блокатор «ban_H» блокирует сцену при серии ошибочных кликов. Прогресс «progr» (progress) отображает уровень прохождения игры.
Чтобы всё заработало необходимо указать счетчики, таймер, машину-блокатор, машину-комбо3 и прогресс в хиденлисте «HL_01» (hiddenList).
СЧЕТЧИК
В редакторе ресурсов выбираем анимацию и добавляем графику для счетчика.
![]()
![]()
![]()
![]()
Создаем объект сцены с типом «counter», в поле res перетаскиваем анимацию с цифрами от 0 до 9, разделитель перетаскиваем в отдельную графу без анимации. Настройки для счетчика:
ТАЙМЕР
В свойствах таймера «timer» необходимо указать «значение» с которого начнется отсчет времени (18000 = 18 сек.). В свойство «графика» из графического редактора перетаскиваем анимацию которую делали для счетчика и двоеточие. Настройки для таймера:
ПРОГРЕСС
Progress используют для отображения каких либо ачивментов, например когда игрок проходить уровень он может получить 1,2,3 звезды или бронзовую, серебряную, золотую. Настройки для прогресса :
Настройки для машины-Combo3c :
Во всех HiddenObject изменить параметры и свойства объекта combo3c
Настройки для машины-блокатора «ban_H» (machine) :
Настройки для hiddenList:
Группа - звезды combo num =1 Количество быстро найденных объектов, нужное для получения звезды Combo combo time = 3000 Интервал между кликами, считающимися быстрыми для Combo accuracy = 0,85 Точность кликов для получения звезды Accuracy (1 = 100%, все клики должны быть только удачные) лимит ложных кликов =5 Лимит ложных кликов. Формула расчета количество верных кликов делим на общее количество получаем коэффициент если он равен или больше указного нами то в опции пишем параметр, если нет то не пишем.
Создаем вторую сцену на которой формируем окно вывода результатов из ректангла (Rectangle), текстовых объектов и счетчиков, окно должно открываться по окончанию игры, при выигрыше показывать набранные очки и надпись об удаче,при проигрыше нулевые очки и надпись о неудаче.
В свойствах счетчиков необходимо прописать уровень!
1) счетчик 7_4_5 — очки за уровень
уровень: Last_game.score30_level
2) счетчик 7_4_4 — бонус комбо
уровень: Last_game.score30_time
3) счетчик 7_4_3 — бонус за аккуратность
уровень: Last_game.score30_accuracy
4) счетчик 7_4_2 — бонус за время
уровень: Last_game.score30_time
5) счетчик 7_4_1 — игровые очки
уровень: Last_game.score30_total
Настройки для машины — star1
(проверка в опциях параметра last_game.last_star_accuracy0,
last_game.last_star_time0, )
Настройки для машины — star2 (если параметр accuracy=0)
Настройки для машины — star3 (если игра пройдена за указанное время)
Настройки для машины — win
Машина win считывает «read» показания счетчика и запускает star1 если игра пройдена.
Кнопка close закрывает окно вывода результатов изменением состояния обьекта win состоянием close.
Включаем вьювер и наблюдаем как автоматически включается таймер, за каждый собранный предмет вам начисляются очки, прогресс показывает прохождение игры, в конце игры появляется окно с выводом результатов набранных очков с звездами.
Урок 5 << | Оглавление | >> Урок 7 |
---|