https://wiki.appsalutecreator.com/api.php?action=feedcontributions&user=Iskorobog&feedformat=atomwiki.appsalutecreator.com - Вклад участника [ru]2024-03-28T21:14:40ZВклад участникаMediaWiki 1.31.15https://wiki.appsalutecreator.com/index.php?title=Bubble_Shooter&diff=8629Bubble Shooter2017-03-16T08:21:05Z<p>Iskorobog: /* Пример проекта */</p>
<hr />
<div>{{TOC right}}<br />
Игровая механика BubbleShooter.<br />
<br />
=BubbleShooter Setup=<br />
'''Общие настройки'''<br />
*''' память''' - (memo) Если 1, то при повторном открытии экрана объект не обновляет свои параметры (помнит текущие параметры, оставшиеся от предыдущего посещения экрана)<br />
*'''res''' - графичесий ресурс поля для игры. Его размер является зоной для тапа.<br />
*'''Слушатель''' - объект типа Matchbattle.<br />
<br />
'''Группа - Сохранения'''<br />
*'''нужны''' - если '''да''', то сохраняет результаты игры в опции.<br />
*'''сохранять глобально''' - (prof) Если ==0, то значение будет сохранено в текущий профиль, если 1 - то глобально.<br />
*'''место''' - место в опциях, куда сохраняются данные игры.<br />
*'''флаг старых сейвов''' - (old_records) Место в опциях, куда пишем флаг 1 , когда считали и отправили сейвы со старого бабл шутера<br />
<br />
<br />
=Графика=<br />
*'''красные шарики''' - графический ресурс шарика данного цвета.<br />
*'''зеленые шарики''' - графический ресурс шарика данного цвета.<br />
*'''синие шарики''' - графический ресурс шарика данного цвета.<br />
*'''желтые шарики''' - графический ресурс шарика данного цвета.<br />
*'''голубые шарики''' - графический ресурс шарика данного цвета.<br />
*'''пурпурные шарики''' - графический ресурс шарика данного цвета.<br />
<br />
<br />
=Прицел=<br />
*'''res''' - Графический ресурс прицела, перетаскивается из редактора ресурсов.<br />
*'''Время''' - Время от нажатия до момента появления прицела.<br />
*'''Время перед мувом''' - Время от нажатия до момента появления прицела в движении.<br />
*'''Смещение''' - Расстояние между пальцем и центром прицела.<br />
<br />
<br />
=Курсор=<br />
*'''res''' - Графический ресурс курсора, перетаскивается из редактора ресурсов.<br />
*'''Кол-во шариков''' - количество шариков в курсоре.<br />
*'''Отражения''' - максимальное кол-во отражений от стенок.<br />
*'''минимальный скейл''' - (curminsc) минимальный скейл графики шариков<br />
*'''максимальный скейл''' - (curmaxsc) максимальный скейл графики шариков<br />
*'''время скалирования''' - (cursctm) время скалирования шариков<br />
<br />
<br />
=Эффекты=<br />
*'''Удар бомбы об гвоздь''' - объект, запускаемый на месте удара бомбы об гвоздь.<br />
*'''Удар шара об гвоздь''' - объект, запускаемый на месте удара шарика об гвоздь.<br />
*'''Очки в намберсах''' - объект, запускаемый в месте лопанья шариков.<br />
*'''Очки в намберсах 2''' - объект с финальными очками, летящими в цель.<br />
<br />
<br />
=Слушатели=<br />
*'''Выстрел''' - объект, которому передаются нижеследующие состояния при выстреле из пушки. Состояния: '''shot''' - выстрел обычным шариком, '''mine''' - выстрел миной, '''color''' - выстрел цветной бомбой, '''bullet''' - выстрел бомбой-ядром.<br />
<br />
<br />
=Настройки=<br />
[[Файл:02-01-2014 13-40-18.png|250px|thumb|right]]<br />
*'''Позиция стреляющего''' - Позиция стреляющего шарика (x;y)<br />
*'''Расстояние от следующего''' - Расстояние от стреляющего шарика до следующего за ним.<br />
*'''Высота физической сетки''' - Высота физической сетки поля.<br />
*'''Ширина физической сетки''' - Ширина физической сетки поля.<br />
*'''Смещение''' - Смешение поля относительно начала координат родителя.<br />
*'''Радиус шариков''' - Радиус шариков.<br />
*'''Мин.радиус шариков''' - Мин.размер шариков во время "взрыва".<br />
*'''Макс.радиус шариков''' - Макс.размер шариков во время "взрыва".<br />
*'''Ширина шариков''' - Ширина шариков на поле. Вычисляется по формуле (2R+2).<br />
*'''Высота шариков''' - Высота шариков на поле. Вычисляется по формуле (2R-2).<br />
*'''номер фрейма графики шариков''' - (clip_frame) Номер фрейма в клипе графики шариков.<br />
*'''Мин.энергия''' - Мин.энергия выстрела. (или что-то в этом духе, более точной информацией обладает только создатель оригинального кода баббла)<br />
*'''Макс.энергия''' - Макс.энергия выстрела.<br />
*'''убирать выбитый цвет из пушки''' - (fbub1) Убирать выбитый цвет из пушки (нет=0, да=1).<br />
*'''Уровень''' - Уровень игры: новичок, любитель, эксперт, мастер, кастомный (настройки уровня сложности зависят от параметров заданных в добавляемом поле "уровень сложности")<br />
*'''Вид игры''' - Режим игры: аркада, стратегия. Режим Аркада был создан для моды "битва", в котором предусматривалось добавление доп.рядов через определенное время бездействия игрока.<br />
[[Файл:02-01-2014 10-04-52.png|250px|thumb|right]]<br />
*'''Начальные шаги до наезда''' - Количество шагов через которое поле "накажет" игрока дополнительными рядами.<br />
*'''Промежутки добавления''' - Время через которое будут добавляться следующий ряд (в режиме Аркада).<br />
*'''Добавление рядов''' - Разрешить добавление рядов. Иначе только извне. Целесообразно использовать в снукере.<br />
*'''Тип досыпания''' - Тип досыпания шариков. Снукер или классический бабблшутер.<br />
*'''подтип классического досыпания''' - (addrowt) Вид классического досыпания шариков (нормальное=0,с заполнениями пустот=1).<br />
*'''Обваливать висячие''' - Обваливать висячие шарики (да/нет). Отключение этого параметра используется в игре снукер.<br />
*'''Отскок от потолка''' - Название говорит само за себя. Используется в снукере.<br />
*'''Файл-описание уровня''' - Файл формата .xml в котором будет построены уровни для игры. Пример приведен справа.<br />
*'''Номер уровня в файле''' - Стартовый уровень, с которого будет начинаться игра.<br />
*'''матч по цифрам''' - (nummatch) Матч по цифрам (нет=0, да=1).<br />
*'''multColor''' - (multColor) умножать число сматченых шариков на номер цвета при подсчете очков (нет=0, да=1).<br />
*'''removeDropWait''' - (removeDropWait) <br />
*'''объект подложки''' - (objback) Объект подлжоки, которой будет передана графика и состояни выстрела и его окончания.<br />
*'''включить анти-чит''' - (anti_cheat) Включить проверку на чит (нет=0, да=1).<br />
*'''собирать статистику''' - (collec_stat) Включить сбор статистики (нет=0, да=1).<br />
*'''складывать строки''' - (is_summing) Включить сбор статистики (нет=0, да=1).Складывать ли наезжающие строки при выбивании нескольких цветов.<br />
<br />
=настройки Lost Numbers=<br />
*'''время перекрашивания''' - (lnreptm)<br />
*'''макс скейл перекрашивания''' - (lnrepmaxsc)<br />
*'''перекрашивать сразу''' - (lnrepimm) нет=0, да=1<br />
<br />
<br />
=Параметры бомб=<br />
===Мина===<br />
[[Файл:02-01-2014 13-37-11.png|250px|thumb|right]]<br />
*'''res''' - Графический ресурс мины в пушке.<br />
*'''res1''' - Графический ресурс мины в полете.<br />
*'''подложка''' - (bomb1bg) Графический ресурс для подложки бомбы (взрыв по радиусу).<br />
*'''Вероятность''' - Вероятность появления данной бомбы.<br />
*'''Скип''' - Количество пропущенных первых шагов для появления бомбы (не реализовано).<br />
*'''Количество''' - Количество появления бомбы за одну игровую сессию.<br />
*'''Шаги''' - Количество шагов до появления данной бомбы.<br />
*'''Шаги ok''' - Количество удачных шагов до появления бомбы.<br />
*'''Шаги miss''' - Количество неудачных шагов до появления бомбы.<br />
*'''n1''' - Минимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''n2''' - Максимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''Радиус''' - Радиус взрыва данной бомбы<br />
*'''Эффект''' - Эффект на месте взрыва бомбы. Объект должен иметь состояние beg.<br />
<br />
===Цвет===<br />
*'''res''' - Графический ресурс бомбы-цвет в пушке.<br />
*'''res1''' - Графический ресурс бомбы-цвет в полете.<br />
*'''подложка''' - (bomb2bg) Графический ресурс для подложки бомбы 2 (взрыв шариков одного цвета).<br />
*'''Вероятность''' - Вероятность появления данной бомбы.<br />
*'''Скип''' - Количество пропущенных первых шагов для появления бомбы (не реализовано).<br />
*'''Количество''' - Количество появления бомбы за одну игровую сессию.<br />
*'''Шаги''' - Количество шагов до появления данной бомбы.<br />
*'''Шаги ok''' - Количество удачных шагов до появления бомбы.<br />
*'''Шаги miss''' - Количество неудачных шагов до появления бомбы.<br />
*'''n1''' - Минимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''n2''' - Максимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
<br />
===Ядро===<br />
*'''res''' - Графический ресурс ядра в пушке.<br />
*'''res1''' - Графический ресурс ядра в полете.<br />
*'''подложка''' - (bomb3bg) Графический ресурс для подложки бомбы 3 (летит и взрывает все вокруг себя).<br />
*'''Вероятность''' - Вероятность появления данной бомбы.<br />
*'''Скип''' - Количество пропущенных первых шагов для появления бомбы (не реализовано).<br />
*'''Количество''' - Количество появления бомбы за одну игровую сессию.<br />
*'''Шаги''' - Количество шагов до появления данной бомбы.<br />
*'''Шаги ok''' - Количество удачных шагов до появления бомбы.<br />
*'''Шаги miss''' - Количество неудачных шагов до появления бомбы.<br />
*'''n1''' - Минимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''n2''' - Максимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''Флайер''' - Флайер летящий под бомбочкой.<br />
*'''Флайер 2''' - Флайер летящий под бомбочкой.<br />
*'''Скорость''' - Скорость перемещения бомбочки.<br />
*'''Число отскоков''' - Число отскоков от стен для бомбочки.<br />
<br />
=Звуки=<br />
*'''shot''' - Звук выстрела.<br />
*'''fail''' - Звук промаха.<br />
*'''explosion''' - Звук взрыва шариков.<br />
*'''intro''' - Звук в начале игры.<br />
*'''game over''' - Звук окончания игры.<br />
*'''bomb mine''' - Звук выстрела бомбы "мина".<br />
*'''bomb bullet''' - Звук выстрела бомбы "ядро".<br />
*'''bomb color''' - Звук выстрела бомбы "цвет".<br />
*'''Взрыв бомбы мина''' - Говорит само за себя.<br />
*'''Взрыв бомбы ядро''' - Говорит само за себя.<br />
*'''Взрыв бомбы цвет''' - Говорит само за себя.<br />
<br />
<br />
=Очковая система=<br />
*'''Тип''' - ''classic'', ''lostnumbers'', ''nightopera''<br />
*'''коеф для матча''' - (match_coef) коэффициент очков для матча.<br />
*'''коеф для обвала''' - (drop_coef) коэффициент очков для обвала.<br />
*'''Визуализатор шагов''' - счетчик, прогресс, которые отображает оставшееся количество шагов до "наезда".<br />
*'''Визуализатор последних очков''' - счетчик, таймер, прогресс последних очков.<br />
*'''Аниматор последних очков''' - машина со счетчиком (подобъектом), которая запускается в месте попадания шарика. Должна иметь состояние ''show''.<br />
*'''Тип подсчета''' - очки могут считаться как: 1) количество сматченных шариков * на kBub; 2) сумма порядковых номеров (сматчили 4 шарика -> очки = 1+2+3+4)<br />
*'''kBub''' - коэффициент за сматченные шарики.<br />
*'''kCmb''' - коэффициент за комбо.<br />
*'''kMov''' - коэффициент за оставшиеся ходы.<br />
*'''kTim''' - коэффициент за оставшиеся секунды.<br />
*'''kPst''' - коэффициент за удаленные с поля вредители.<br />
*'''kSnw''' - коэффициент за удаленные с поля снежинки.<br />
<br />
= Состояния =<br />
*'''pause''' - перевести объект в паузу; <br />
*'''resume''' - вытащить объект из паузы;<br />
*'''hint''' - выполнить хинт ( нужно в поле hntt указать номер хинта);<br />
*'''gover''' - <br />
*'''game_continue''' - продолжить игру (например, в случае, когда мы проиграли, но даем игроку шанс, убрав несколько нижних линий);<br />
*'''game_lose''' - задекларировать проигрыш (например, когда мы проиграли, и игрок отказался от шанса продолжить игру);<br />
*'''cur_on''' - отображать траекторию при прицеливании;<br />
*'''cur_off''' - убрать траекторию при прицеливании;<br />
*'''fbubswap''' - поменять местами шарики в пушке;<br />
*'''del_bottom''' - удалить несколько (задается параметром) нижних рядов;<br />
*'''effdigsc2''' - <br />
*'''update_params''' - обновить параметры объекта(пока только номер фрейма клипа шариков);<br />
*'''reset_game''' - сбросит игру , которая сохранена в опциях;<br />
*'''send_stat''' - отправить статистику.<br />
<br />
<br />
<br />
<br />
=Добавляемые параметры=<br />
<br />
===[[Файл:+.png]] Графический ресурс===<br />
*'''Клип''' - Графический ресурс, перетаскивается из редактора ресурсов.<br />
*'''Номер цвета''' - Номер цвета, который будет соответствовать значению цвета в файле-уровня.<br />
<br />
<br />
===[[Файл:+.png]] Ресурсы функциональных шариков===<br />
[[Файл:03-02-2014 10-35-45.png|200px|thumb|right]]<br />
*'''Функционал''' - Записываем значение чудо-шарика из файла-настроек.<br />
*'''Клип''' - Графический ресурс шариков, обладающих данным функционалом.<br />
*'''Звук''' - Звук шарика, обладающего данным функционалом.<br />
*'''Эффект''' - Машина/Патикл обладающие состоянием beg.<br />
<br />
<br />
===[[Файл:+.png]] Параметры анимации для шарика лунка===<br />
*'''Время перемещения''' - время движения шарика в центр лунки.<br />
*'''Время исчезновения''' - время исчезновения шарика в лунке (скейл).<br />
*'''Время жизни''' - время жизни эффекта.<br />
<br />
<br />
===[[Файл:+.png]] Параметры анимации для шарика колючка===<br />
*'''Время жизни''' - время жизни эффекта.<br />
<br />
<br />
===[[Файл:+.png]] Параметры анимации для шарика снежинка===<br />
*'''Время жизни''' - время жизни эффекта.<br />
<br />
<br />
===[[Файл:+.png]] Параметры анимации для шарика вредитель===<br />
*'''Время жизни''' - время жизни эффекта.<br />
*'''Время ожидания скина''' - время, пока поменяется скин шарика.<br />
*'''Эффект''' - эффект, возникающий в момент обрастания вредителя снежинками.<br />
<br />
<br />
===[[Файл:+.png]] Физика===<br />
[[Файл:02-01-2014 13-57-15.png|250px|thumb|right]]<br />
*'''Справа находится пример настроек физики для шариков радиусом 24.'''<br />
*'''Move''' - Коэффициент отталкивания летящего шарика.<br />
*'''MinDest2''' - Квадрат минимального расстояния, когда шарик считается в покое.<br />
*'''MinVel2''' - Квадрат минимальной скорости, когда шарик считается в покое.<br />
*'''Down''' - Трение.<br />
*'''MaxVel''' - Максимальная скорость колебаний.<br />
*'''Elast''' - Эластичность с-мы (коэффициент для сил действующих между соседними шариками).<br />
*'''Glue''' - Коэффициент притяжения шарика к центру ячейки.<br />
*'''MoveC''' - Радиус действия летящего шарика в ячейках.<br />
*'''BangVel''' - Приращение для скорости взрыва.<br />
<br />
<br />
===[[Файл:+.png]] параметры хинта бомба===<br />
*'''res''' - (res) Графический ресурс для бомбочки.<br />
*'''радиус''' - (r) Радиус действия бомбочки (взрывает шарики в пределах этого радиуса).<br />
<br />
<br />
===[[Файл:+.png]] параметры хинта бомба удаляющая цвет к которому коснулась при выстреле===<br />
*'''res''' - (res) Графический ресурс для бомбочки.<br />
<br />
<br />
===[[Файл:+.png]] кастомные параметры поля===<br />
*'''кол-во цветов''' - (colors) Количество цветов.<br />
*'''заполненные строки''' - (lines) Количество заполненных строк.<br />
*'''шаги до наезда''' - (steps) Количество шагов до наезда.<br />
<br />
<br />
===[[Файл:+.png]] Уровень сложности===<br />
''Название параметров говорит само за себя. Создавать их можно бесконечное множество, главное не забывать назначать им порядковые номера в поле "уровень" по мере добавления новых уровней. Количество уровней сложности внутри объекта должно соответствовать количеству уровней сложности у необходимого Вам монстра. Количество цветов заданное в файле-настройках .xml имеет приоритет над теми, что мы задаем в объекте.''<br />
*'''Уровень''' - номер уровня.<br />
*'''Кол-во цветов''' - число цветов на поле.<br />
*'''Шаги до наезда''' - число шагов до наезда.<br />
*'''Бомба мина: вероятность''' - вероятность появления мины в процентах.<br />
*'''Бомба мина: радиус''' - радиус мины в шариках.<br />
*'''Бомба ядро:вероятность''' - вероятность появления ядра в процентах.<br />
*'''Бомба ядро: число отскоков от стен''' - число отскоков ядра от стен поля.<br />
*'''Бомба цвет: количество''' - число бомб-цвет, которые появятся на уровне.<br />
*'''Бомба цвет: шаги''' - число шагов вначале уровня до появления бомбы-цвет.<br />
<br />
<br />
===[[Файл:+.png]] Визуализатор общих очков===<br />
*'''Объект''' - счетчик, прогресс, показывающий сумму очков за уровень.<br />
<br />
<br />
===[[Файл:+.png]] Игра выиграна: изменить состояние объекта===<br />
*'''Объект''' - объект, состояние которого меняем при выигрыше.<br />
*'''Состояние''' - новое состояние объекта.<br />
<br />
<br />
===[[Файл:+.png]] Игра выиграна: изменить параметр объекта===<br />
*'''Объект''' - объект, параметр которого меняем при выигрыше.<br />
*'''Параметр''' - параметр, который меняем.<br />
*'''Значение''' - новое значение параметра.<br />
<br />
<br />
===[[Файл:+.png]] Игра проиграна: изменить состояние объекта===<br />
*'''Объект''' - объект, состояние которого меняем при проигрыше.<br />
*'''Состояние''' - новое состояние объекта.<br />
<br />
<br />
===[[Файл:+.png]] Игра проиграна: изменить параметр объекта===<br />
*'''Объект''' - объект, параметр которого меняем при проигрыше.<br />
*'''Параметр''' - параметр, который меняем.<br />
*'''Значение''' - новое значение параметра.<br />
<br />
<br />
===[[Файл:+.png]] хинт бомба цвет: успех: изменить состояние объекта===<br />
*'''объект''' - Объект, состояние которого нужно изменить.<br />
*'''состояние''' - Новое состояние объекта.<br />
<br />
<br />
===[[Файл:+.png]] хинт бомба цвет: неуспех: изменить состояние объекта===<br />
*'''объект''' - Объект, состояние которого нужно изменить.<br />
*'''состояние''' - Новое состояние объекта.<br />
<br />
<br />
===[[Файл:+.png]] хинт бомба ядро: успех: изменить состояние объекта===<br />
*'''объект''' - Объект, состояние которого нужно изменить.<br />
*'''состояние''' - Новое состояние объекта.<br />
<br />
<br />
===[[Файл:+.png]]хинт бомба ядро: неуспех: изменить состояние объекта===<br />
*'''объект''' - Объект, состояние которого нужно изменить.<br />
*'''состояние''' - Новое состояние объекта.<br />
<br />
<br />
===[[Файл:+.png]] хинт бомба мина: успех: изменить состояние объекта===<br />
*'''объект''' - Объект, состояние которого нужно изменить.<br />
*'''состояние''' - Новое состояние объекта.<br />
<br />
<br />
===[[Файл:+.png]] хинт бомба мина: неуспех: изменить состояние объекта===<br />
*'''объект''' - Объект, состояние которого нужно изменить.<br />
*'''состояние''' - Новое состояние объект.<br />
<br />
<br />
===[[Файл:+.png]] хинт 'поменять шары местами': успех: изменить состояние объекта===<br />
*'''объект''' - Объект, состояние которого нужно изменить.<br />
*'''состояние''' - Новое состояние объект.<br />
<br />
<br />
===[[Файл:+.png]] хинт 'поменять шары местами': неудача: изменить состояние объекта===<br />
*'''объект''' - Объект, состояние которого нужно изменить.<br />
*'''состояние''' - Новое состояние объект.<br />
<br />
<br />
===[[Файл:+.png]] выбили цвет: изменить состояние объекта===<br />
*'''объект''' - Объект, состояние которого нужно изменить.<br />
*'''состояние''' - Новое состояние объект.<br />
<br />
<br />
===[[Файл:+.png]] Выбили цвет: изменить состояние объекта===<br />
*'''Объект''' - объект, состояние которого меняем при удалении цвета с поля. При этом BSh передает указанному объекту параметр ''param_removed_colors'' со значением количества выбитых цветов за данный ход.<br />
*'''Состояние''' - новое состояние объекта.<br />
<br />
=Хинты=<br />
*'''Замена шарика''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=0, после чего передать состояние hint.<br />
*'''Удаление цвета''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=5, после чего передать состояние hint.<br />
*'''Ядро''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=3, после чего передать состояние hint.<br />
*'''Мина''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=1, после чего передать состояние hint.<br />
*'''Курсор''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=0, после чего передать состояние cur_on. После выстрела курсор исчезает.<br />
<br />
<br />
=Пример проекта=<br />
S:\!MOBILE\!!!EditorGames\Wiki_sample\bubble_snooker_graphprogress.zip<br />
<br />
S:\!MOBILE\!!!EditorGames\Wiki_sample\bubble.rar<br />
<br />
=Пример реализации: задание уровня=<br />
<br />
::'''1)''' Если нам необходимо задать уровень шутеру прямиком из экрана где он находиться, и при этом он уже запустился (прорисовалась графика). То с начало мы должны передать ему состояние end, после чего задать необходимый уровень и переинитить сцену на которой он находиться (желательно чтобы на этой сцене был только шутер):<br />
<br />
[[Файл:Bubble change level.png|centre]]<br />
<br />
<br />
::'''2)''' Если же, мы задаем нужный уровень удалённо ( с другого экрана), то мы расшариваем экран с самим шутером на сцену где будем задавать ему новый уровень. И на том экране (удалённом) задаём шутеру нужный уровень (levelNum). <br />
<br />
[[Category:Game mechanic]]</div>Iskoroboghttps://wiki.appsalutecreator.com/index.php?title=Bubble_Shooter&diff=8628Bubble Shooter2017-03-16T08:20:50Z<p>Iskorobog: /* Пример проекта */</p>
<hr />
<div>{{TOC right}}<br />
Игровая механика BubbleShooter.<br />
<br />
=BubbleShooter Setup=<br />
'''Общие настройки'''<br />
*''' память''' - (memo) Если 1, то при повторном открытии экрана объект не обновляет свои параметры (помнит текущие параметры, оставшиеся от предыдущего посещения экрана)<br />
*'''res''' - графичесий ресурс поля для игры. Его размер является зоной для тапа.<br />
*'''Слушатель''' - объект типа Matchbattle.<br />
<br />
'''Группа - Сохранения'''<br />
*'''нужны''' - если '''да''', то сохраняет результаты игры в опции.<br />
*'''сохранять глобально''' - (prof) Если ==0, то значение будет сохранено в текущий профиль, если 1 - то глобально.<br />
*'''место''' - место в опциях, куда сохраняются данные игры.<br />
*'''флаг старых сейвов''' - (old_records) Место в опциях, куда пишем флаг 1 , когда считали и отправили сейвы со старого бабл шутера<br />
<br />
<br />
=Графика=<br />
*'''красные шарики''' - графический ресурс шарика данного цвета.<br />
*'''зеленые шарики''' - графический ресурс шарика данного цвета.<br />
*'''синие шарики''' - графический ресурс шарика данного цвета.<br />
*'''желтые шарики''' - графический ресурс шарика данного цвета.<br />
*'''голубые шарики''' - графический ресурс шарика данного цвета.<br />
*'''пурпурные шарики''' - графический ресурс шарика данного цвета.<br />
<br />
<br />
=Прицел=<br />
*'''res''' - Графический ресурс прицела, перетаскивается из редактора ресурсов.<br />
*'''Время''' - Время от нажатия до момента появления прицела.<br />
*'''Время перед мувом''' - Время от нажатия до момента появления прицела в движении.<br />
*'''Смещение''' - Расстояние между пальцем и центром прицела.<br />
<br />
<br />
=Курсор=<br />
*'''res''' - Графический ресурс курсора, перетаскивается из редактора ресурсов.<br />
*'''Кол-во шариков''' - количество шариков в курсоре.<br />
*'''Отражения''' - максимальное кол-во отражений от стенок.<br />
*'''минимальный скейл''' - (curminsc) минимальный скейл графики шариков<br />
*'''максимальный скейл''' - (curmaxsc) максимальный скейл графики шариков<br />
*'''время скалирования''' - (cursctm) время скалирования шариков<br />
<br />
<br />
=Эффекты=<br />
*'''Удар бомбы об гвоздь''' - объект, запускаемый на месте удара бомбы об гвоздь.<br />
*'''Удар шара об гвоздь''' - объект, запускаемый на месте удара шарика об гвоздь.<br />
*'''Очки в намберсах''' - объект, запускаемый в месте лопанья шариков.<br />
*'''Очки в намберсах 2''' - объект с финальными очками, летящими в цель.<br />
<br />
<br />
=Слушатели=<br />
*'''Выстрел''' - объект, которому передаются нижеследующие состояния при выстреле из пушки. Состояния: '''shot''' - выстрел обычным шариком, '''mine''' - выстрел миной, '''color''' - выстрел цветной бомбой, '''bullet''' - выстрел бомбой-ядром.<br />
<br />
<br />
=Настройки=<br />
[[Файл:02-01-2014 13-40-18.png|250px|thumb|right]]<br />
*'''Позиция стреляющего''' - Позиция стреляющего шарика (x;y)<br />
*'''Расстояние от следующего''' - Расстояние от стреляющего шарика до следующего за ним.<br />
*'''Высота физической сетки''' - Высота физической сетки поля.<br />
*'''Ширина физической сетки''' - Ширина физической сетки поля.<br />
*'''Смещение''' - Смешение поля относительно начала координат родителя.<br />
*'''Радиус шариков''' - Радиус шариков.<br />
*'''Мин.радиус шариков''' - Мин.размер шариков во время "взрыва".<br />
*'''Макс.радиус шариков''' - Макс.размер шариков во время "взрыва".<br />
*'''Ширина шариков''' - Ширина шариков на поле. Вычисляется по формуле (2R+2).<br />
*'''Высота шариков''' - Высота шариков на поле. Вычисляется по формуле (2R-2).<br />
*'''номер фрейма графики шариков''' - (clip_frame) Номер фрейма в клипе графики шариков.<br />
*'''Мин.энергия''' - Мин.энергия выстрела. (или что-то в этом духе, более точной информацией обладает только создатель оригинального кода баббла)<br />
*'''Макс.энергия''' - Макс.энергия выстрела.<br />
*'''убирать выбитый цвет из пушки''' - (fbub1) Убирать выбитый цвет из пушки (нет=0, да=1).<br />
*'''Уровень''' - Уровень игры: новичок, любитель, эксперт, мастер, кастомный (настройки уровня сложности зависят от параметров заданных в добавляемом поле "уровень сложности")<br />
*'''Вид игры''' - Режим игры: аркада, стратегия. Режим Аркада был создан для моды "битва", в котором предусматривалось добавление доп.рядов через определенное время бездействия игрока.<br />
[[Файл:02-01-2014 10-04-52.png|250px|thumb|right]]<br />
*'''Начальные шаги до наезда''' - Количество шагов через которое поле "накажет" игрока дополнительными рядами.<br />
*'''Промежутки добавления''' - Время через которое будут добавляться следующий ряд (в режиме Аркада).<br />
*'''Добавление рядов''' - Разрешить добавление рядов. Иначе только извне. Целесообразно использовать в снукере.<br />
*'''Тип досыпания''' - Тип досыпания шариков. Снукер или классический бабблшутер.<br />
*'''подтип классического досыпания''' - (addrowt) Вид классического досыпания шариков (нормальное=0,с заполнениями пустот=1).<br />
*'''Обваливать висячие''' - Обваливать висячие шарики (да/нет). Отключение этого параметра используется в игре снукер.<br />
*'''Отскок от потолка''' - Название говорит само за себя. Используется в снукере.<br />
*'''Файл-описание уровня''' - Файл формата .xml в котором будет построены уровни для игры. Пример приведен справа.<br />
*'''Номер уровня в файле''' - Стартовый уровень, с которого будет начинаться игра.<br />
*'''матч по цифрам''' - (nummatch) Матч по цифрам (нет=0, да=1).<br />
*'''multColor''' - (multColor) умножать число сматченых шариков на номер цвета при подсчете очков (нет=0, да=1).<br />
*'''removeDropWait''' - (removeDropWait) <br />
*'''объект подложки''' - (objback) Объект подлжоки, которой будет передана графика и состояни выстрела и его окончания.<br />
*'''включить анти-чит''' - (anti_cheat) Включить проверку на чит (нет=0, да=1).<br />
*'''собирать статистику''' - (collec_stat) Включить сбор статистики (нет=0, да=1).<br />
*'''складывать строки''' - (is_summing) Включить сбор статистики (нет=0, да=1).Складывать ли наезжающие строки при выбивании нескольких цветов.<br />
<br />
=настройки Lost Numbers=<br />
*'''время перекрашивания''' - (lnreptm)<br />
*'''макс скейл перекрашивания''' - (lnrepmaxsc)<br />
*'''перекрашивать сразу''' - (lnrepimm) нет=0, да=1<br />
<br />
<br />
=Параметры бомб=<br />
===Мина===<br />
[[Файл:02-01-2014 13-37-11.png|250px|thumb|right]]<br />
*'''res''' - Графический ресурс мины в пушке.<br />
*'''res1''' - Графический ресурс мины в полете.<br />
*'''подложка''' - (bomb1bg) Графический ресурс для подложки бомбы (взрыв по радиусу).<br />
*'''Вероятность''' - Вероятность появления данной бомбы.<br />
*'''Скип''' - Количество пропущенных первых шагов для появления бомбы (не реализовано).<br />
*'''Количество''' - Количество появления бомбы за одну игровую сессию.<br />
*'''Шаги''' - Количество шагов до появления данной бомбы.<br />
*'''Шаги ok''' - Количество удачных шагов до появления бомбы.<br />
*'''Шаги miss''' - Количество неудачных шагов до появления бомбы.<br />
*'''n1''' - Минимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''n2''' - Максимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''Радиус''' - Радиус взрыва данной бомбы<br />
*'''Эффект''' - Эффект на месте взрыва бомбы. Объект должен иметь состояние beg.<br />
<br />
===Цвет===<br />
*'''res''' - Графический ресурс бомбы-цвет в пушке.<br />
*'''res1''' - Графический ресурс бомбы-цвет в полете.<br />
*'''подложка''' - (bomb2bg) Графический ресурс для подложки бомбы 2 (взрыв шариков одного цвета).<br />
*'''Вероятность''' - Вероятность появления данной бомбы.<br />
*'''Скип''' - Количество пропущенных первых шагов для появления бомбы (не реализовано).<br />
*'''Количество''' - Количество появления бомбы за одну игровую сессию.<br />
*'''Шаги''' - Количество шагов до появления данной бомбы.<br />
*'''Шаги ok''' - Количество удачных шагов до появления бомбы.<br />
*'''Шаги miss''' - Количество неудачных шагов до появления бомбы.<br />
*'''n1''' - Минимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''n2''' - Максимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
<br />
===Ядро===<br />
*'''res''' - Графический ресурс ядра в пушке.<br />
*'''res1''' - Графический ресурс ядра в полете.<br />
*'''подложка''' - (bomb3bg) Графический ресурс для подложки бомбы 3 (летит и взрывает все вокруг себя).<br />
*'''Вероятность''' - Вероятность появления данной бомбы.<br />
*'''Скип''' - Количество пропущенных первых шагов для появления бомбы (не реализовано).<br />
*'''Количество''' - Количество появления бомбы за одну игровую сессию.<br />
*'''Шаги''' - Количество шагов до появления данной бомбы.<br />
*'''Шаги ok''' - Количество удачных шагов до появления бомбы.<br />
*'''Шаги miss''' - Количество неудачных шагов до появления бомбы.<br />
*'''n1''' - Минимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''n2''' - Максимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''Флайер''' - Флайер летящий под бомбочкой.<br />
*'''Флайер 2''' - Флайер летящий под бомбочкой.<br />
*'''Скорость''' - Скорость перемещения бомбочки.<br />
*'''Число отскоков''' - Число отскоков от стен для бомбочки.<br />
<br />
=Звуки=<br />
*'''shot''' - Звук выстрела.<br />
*'''fail''' - Звук промаха.<br />
*'''explosion''' - Звук взрыва шариков.<br />
*'''intro''' - Звук в начале игры.<br />
*'''game over''' - Звук окончания игры.<br />
*'''bomb mine''' - Звук выстрела бомбы "мина".<br />
*'''bomb bullet''' - Звук выстрела бомбы "ядро".<br />
*'''bomb color''' - Звук выстрела бомбы "цвет".<br />
*'''Взрыв бомбы мина''' - Говорит само за себя.<br />
*'''Взрыв бомбы ядро''' - Говорит само за себя.<br />
*'''Взрыв бомбы цвет''' - Говорит само за себя.<br />
<br />
<br />
=Очковая система=<br />
*'''Тип''' - ''classic'', ''lostnumbers'', ''nightopera''<br />
*'''коеф для матча''' - (match_coef) коэффициент очков для матча.<br />
*'''коеф для обвала''' - (drop_coef) коэффициент очков для обвала.<br />
*'''Визуализатор шагов''' - счетчик, прогресс, которые отображает оставшееся количество шагов до "наезда".<br />
*'''Визуализатор последних очков''' - счетчик, таймер, прогресс последних очков.<br />
*'''Аниматор последних очков''' - машина со счетчиком (подобъектом), которая запускается в месте попадания шарика. Должна иметь состояние ''show''.<br />
*'''Тип подсчета''' - очки могут считаться как: 1) количество сматченных шариков * на kBub; 2) сумма порядковых номеров (сматчили 4 шарика -> очки = 1+2+3+4)<br />
*'''kBub''' - коэффициент за сматченные шарики.<br />
*'''kCmb''' - коэффициент за комбо.<br />
*'''kMov''' - коэффициент за оставшиеся ходы.<br />
*'''kTim''' - коэффициент за оставшиеся секунды.<br />
*'''kPst''' - коэффициент за удаленные с поля вредители.<br />
*'''kSnw''' - коэффициент за удаленные с поля снежинки.<br />
<br />
= Состояния =<br />
*'''pause''' - перевести объект в паузу; <br />
*'''resume''' - вытащить объект из паузы;<br />
*'''hint''' - выполнить хинт ( нужно в поле hntt указать номер хинта);<br />
*'''gover''' - <br />
*'''game_continue''' - продолжить игру (например, в случае, когда мы проиграли, но даем игроку шанс, убрав несколько нижних линий);<br />
*'''game_lose''' - задекларировать проигрыш (например, когда мы проиграли, и игрок отказался от шанса продолжить игру);<br />
*'''cur_on''' - отображать траекторию при прицеливании;<br />
*'''cur_off''' - убрать траекторию при прицеливании;<br />
*'''fbubswap''' - поменять местами шарики в пушке;<br />
*'''del_bottom''' - удалить несколько (задается параметром) нижних рядов;<br />
*'''effdigsc2''' - <br />
*'''update_params''' - обновить параметры объекта(пока только номер фрейма клипа шариков);<br />
*'''reset_game''' - сбросит игру , которая сохранена в опциях;<br />
*'''send_stat''' - отправить статистику.<br />
<br />
<br />
<br />
<br />
=Добавляемые параметры=<br />
<br />
===[[Файл:+.png]] Графический ресурс===<br />
*'''Клип''' - Графический ресурс, перетаскивается из редактора ресурсов.<br />
*'''Номер цвета''' - Номер цвета, который будет соответствовать значению цвета в файле-уровня.<br />
<br />
<br />
===[[Файл:+.png]] Ресурсы функциональных шариков===<br />
[[Файл:03-02-2014 10-35-45.png|200px|thumb|right]]<br />
*'''Функционал''' - Записываем значение чудо-шарика из файла-настроек.<br />
*'''Клип''' - Графический ресурс шариков, обладающих данным функционалом.<br />
*'''Звук''' - Звук шарика, обладающего данным функционалом.<br />
*'''Эффект''' - Машина/Патикл обладающие состоянием beg.<br />
<br />
<br />
===[[Файл:+.png]] Параметры анимации для шарика лунка===<br />
*'''Время перемещения''' - время движения шарика в центр лунки.<br />
*'''Время исчезновения''' - время исчезновения шарика в лунке (скейл).<br />
*'''Время жизни''' - время жизни эффекта.<br />
<br />
<br />
===[[Файл:+.png]] Параметры анимации для шарика колючка===<br />
*'''Время жизни''' - время жизни эффекта.<br />
<br />
<br />
===[[Файл:+.png]] Параметры анимации для шарика снежинка===<br />
*'''Время жизни''' - время жизни эффекта.<br />
<br />
<br />
===[[Файл:+.png]] Параметры анимации для шарика вредитель===<br />
*'''Время жизни''' - время жизни эффекта.<br />
*'''Время ожидания скина''' - время, пока поменяется скин шарика.<br />
*'''Эффект''' - эффект, возникающий в момент обрастания вредителя снежинками.<br />
<br />
<br />
===[[Файл:+.png]] Физика===<br />
[[Файл:02-01-2014 13-57-15.png|250px|thumb|right]]<br />
*'''Справа находится пример настроек физики для шариков радиусом 24.'''<br />
*'''Move''' - Коэффициент отталкивания летящего шарика.<br />
*'''MinDest2''' - Квадрат минимального расстояния, когда шарик считается в покое.<br />
*'''MinVel2''' - Квадрат минимальной скорости, когда шарик считается в покое.<br />
*'''Down''' - Трение.<br />
*'''MaxVel''' - Максимальная скорость колебаний.<br />
*'''Elast''' - Эластичность с-мы (коэффициент для сил действующих между соседними шариками).<br />
*'''Glue''' - Коэффициент притяжения шарика к центру ячейки.<br />
*'''MoveC''' - Радиус действия летящего шарика в ячейках.<br />
*'''BangVel''' - Приращение для скорости взрыва.<br />
<br />
<br />
===[[Файл:+.png]] параметры хинта бомба===<br />
*'''res''' - (res) Графический ресурс для бомбочки.<br />
*'''радиус''' - (r) Радиус действия бомбочки (взрывает шарики в пределах этого радиуса).<br />
<br />
<br />
===[[Файл:+.png]] параметры хинта бомба удаляющая цвет к которому коснулась при выстреле===<br />
*'''res''' - (res) Графический ресурс для бомбочки.<br />
<br />
<br />
===[[Файл:+.png]] кастомные параметры поля===<br />
*'''кол-во цветов''' - (colors) Количество цветов.<br />
*'''заполненные строки''' - (lines) Количество заполненных строк.<br />
*'''шаги до наезда''' - (steps) Количество шагов до наезда.<br />
<br />
<br />
===[[Файл:+.png]] Уровень сложности===<br />
''Название параметров говорит само за себя. Создавать их можно бесконечное множество, главное не забывать назначать им порядковые номера в поле "уровень" по мере добавления новых уровней. Количество уровней сложности внутри объекта должно соответствовать количеству уровней сложности у необходимого Вам монстра. Количество цветов заданное в файле-настройках .xml имеет приоритет над теми, что мы задаем в объекте.''<br />
*'''Уровень''' - номер уровня.<br />
*'''Кол-во цветов''' - число цветов на поле.<br />
*'''Шаги до наезда''' - число шагов до наезда.<br />
*'''Бомба мина: вероятность''' - вероятность появления мины в процентах.<br />
*'''Бомба мина: радиус''' - радиус мины в шариках.<br />
*'''Бомба ядро:вероятность''' - вероятность появления ядра в процентах.<br />
*'''Бомба ядро: число отскоков от стен''' - число отскоков ядра от стен поля.<br />
*'''Бомба цвет: количество''' - число бомб-цвет, которые появятся на уровне.<br />
*'''Бомба цвет: шаги''' - число шагов вначале уровня до появления бомбы-цвет.<br />
<br />
<br />
===[[Файл:+.png]] Визуализатор общих очков===<br />
*'''Объект''' - счетчик, прогресс, показывающий сумму очков за уровень.<br />
<br />
<br />
===[[Файл:+.png]] Игра выиграна: изменить состояние объекта===<br />
*'''Объект''' - объект, состояние которого меняем при выигрыше.<br />
*'''Состояние''' - новое состояние объекта.<br />
<br />
<br />
===[[Файл:+.png]] Игра выиграна: изменить параметр объекта===<br />
*'''Объект''' - объект, параметр которого меняем при выигрыше.<br />
*'''Параметр''' - параметр, который меняем.<br />
*'''Значение''' - новое значение параметра.<br />
<br />
<br />
===[[Файл:+.png]] Игра проиграна: изменить состояние объекта===<br />
*'''Объект''' - объект, состояние которого меняем при проигрыше.<br />
*'''Состояние''' - новое состояние объекта.<br />
<br />
<br />
===[[Файл:+.png]] Игра проиграна: изменить параметр объекта===<br />
*'''Объект''' - объект, параметр которого меняем при проигрыше.<br />
*'''Параметр''' - параметр, который меняем.<br />
*'''Значение''' - новое значение параметра.<br />
<br />
<br />
===[[Файл:+.png]] хинт бомба цвет: успех: изменить состояние объекта===<br />
*'''объект''' - Объект, состояние которого нужно изменить.<br />
*'''состояние''' - Новое состояние объекта.<br />
<br />
<br />
===[[Файл:+.png]] хинт бомба цвет: неуспех: изменить состояние объекта===<br />
*'''объект''' - Объект, состояние которого нужно изменить.<br />
*'''состояние''' - Новое состояние объекта.<br />
<br />
<br />
===[[Файл:+.png]] хинт бомба ядро: успех: изменить состояние объекта===<br />
*'''объект''' - Объект, состояние которого нужно изменить.<br />
*'''состояние''' - Новое состояние объекта.<br />
<br />
<br />
===[[Файл:+.png]]хинт бомба ядро: неуспех: изменить состояние объекта===<br />
*'''объект''' - Объект, состояние которого нужно изменить.<br />
*'''состояние''' - Новое состояние объекта.<br />
<br />
<br />
===[[Файл:+.png]] хинт бомба мина: успех: изменить состояние объекта===<br />
*'''объект''' - Объект, состояние которого нужно изменить.<br />
*'''состояние''' - Новое состояние объекта.<br />
<br />
<br />
===[[Файл:+.png]] хинт бомба мина: неуспех: изменить состояние объекта===<br />
*'''объект''' - Объект, состояние которого нужно изменить.<br />
*'''состояние''' - Новое состояние объект.<br />
<br />
<br />
===[[Файл:+.png]] хинт 'поменять шары местами': успех: изменить состояние объекта===<br />
*'''объект''' - Объект, состояние которого нужно изменить.<br />
*'''состояние''' - Новое состояние объект.<br />
<br />
<br />
===[[Файл:+.png]] хинт 'поменять шары местами': неудача: изменить состояние объекта===<br />
*'''объект''' - Объект, состояние которого нужно изменить.<br />
*'''состояние''' - Новое состояние объект.<br />
<br />
<br />
===[[Файл:+.png]] выбили цвет: изменить состояние объекта===<br />
*'''объект''' - Объект, состояние которого нужно изменить.<br />
*'''состояние''' - Новое состояние объект.<br />
<br />
<br />
===[[Файл:+.png]] Выбили цвет: изменить состояние объекта===<br />
*'''Объект''' - объект, состояние которого меняем при удалении цвета с поля. При этом BSh передает указанному объекту параметр ''param_removed_colors'' со значением количества выбитых цветов за данный ход.<br />
*'''Состояние''' - новое состояние объекта.<br />
<br />
=Хинты=<br />
*'''Замена шарика''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=0, после чего передать состояние hint.<br />
*'''Удаление цвета''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=5, после чего передать состояние hint.<br />
*'''Ядро''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=3, после чего передать состояние hint.<br />
*'''Мина''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=1, после чего передать состояние hint.<br />
*'''Курсор''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=0, после чего передать состояние cur_on. После выстрела курсор исчезает.<br />
<br />
<br />
=Пример проекта=<br />
S:\!MOBILE\!!!EditorGames\Wiki_sample\bubble_snooker_graphprogress.zip<br />
S:\!MOBILE\!!!EditorGames\Wiki_sample\bubble.rar<br />
<br />
=Пример реализации: задание уровня=<br />
<br />
::'''1)''' Если нам необходимо задать уровень шутеру прямиком из экрана где он находиться, и при этом он уже запустился (прорисовалась графика). То с начало мы должны передать ему состояние end, после чего задать необходимый уровень и переинитить сцену на которой он находиться (желательно чтобы на этой сцене был только шутер):<br />
<br />
[[Файл:Bubble change level.png|centre]]<br />
<br />
<br />
::'''2)''' Если же, мы задаем нужный уровень удалённо ( с другого экрана), то мы расшариваем экран с самим шутером на сцену где будем задавать ему новый уровень. И на том экране (удалённом) задаём шутеру нужный уровень (levelNum). <br />
<br />
[[Category:Game mechanic]]</div>Iskoroboghttps://wiki.appsalutecreator.com/index.php?title=Isomover&diff=8627Isomover2017-03-16T08:15:58Z<p>Iskorobog: /* Пример */</p>
<hr />
<div>'''Isomover''' - [[Object|объект]] используется для осуществления движения и взаимодействия в изометрической карте. <br />
<br />
Isomover обязательно должен быть подобъектом [[isomap]]. <br />
<br />
В проекте с картой ([[isomap]]) и движущимися по ней объектами (isomover) часто используют [[economics]] и [[eitems]] потому, что для завершения процессов часто требуется применить предмет или ресурс.<br />
<br />
Начало движения множества изомуверов сильно нагружает систему, поэтому следует позаботиться, чтобы это происходило не в один момент времени. По возможности добавляйте небольшую и различную паузу каждому изомуверу перед стартом.<br><br><br />
==Основные параметры==<br />
*'''Положение''' (''x'',''y'') - рекомендуется выносить isomover-объекты за пределы карты. Иначе, если объект должен появляться не сразу, то он будет просто стоять без движения<br />
*'''Память''' - всегда должно быть значение 1, обязательное условие корректной работы. Это позволяет объекту двигаться последовательно, не инициализируясь после каждого движения в исходной точке<br />
*'''тип ребра min''' (''edge_t_min'') - перемещаться по ребрам не ниже заданного, -1 не проверять<br />
*'''тип ребра max''' (''edge_t_max'') - перемещаться по ребрам не выше заданного, -1 не проверять. Типы ребер задаются в isomap<br />
*'''Старт''' (''start'') - точка старта, выбирается из списка точек Isomap<br />
*'''Финиш''' (''finish'') - точка финиша, выбирается из списка точек Isomap<br />
*'''Скорость (макс)''' (''vel_max'') - максимальная скорость, с которой передвигается объект Isomover<br />
*'''Скорость''' (''vel'') - не использовать, вычисляется по формуле автоматически, позже будет скрыто. V = Vmax*(k+(1-k)*(P/Pmax))<br />
*'''Жизнь (макс)''' (''pow_max'') - максимальная жизнь<br />
*'''Жизнь''' (''pow'') - текущая жизнь, высчитывается по формуле автоматически<br />
*'''Сохранять жизнь в опции''' (''powsave'') - если да, то объекты сцены сохранят уровень жизни при выходе со сцены и возвращении на нее<br />
*'''Коэффициент скорости''' (''speed_k'') - коэффициент k в формуле расчета скорости. Чтобы скорость не зависела от значения жизни - указываем speed_k = 1<br />
*'''Менять угол''' (''fixangle'') - изменение угла для предания плавности смены графики при дугообразном перемещении объекта. С появлением 3D-объектов больше не используется<br />
*'''Тип''' (''mtype'') - объекты можно разделять на типы (люди, монстры, звери и т.д.). Взаимодействие происходит между объектами разных типов, настраивается в добавляемых параметрах<br />
*'''Радиус''' (''mradius'') - значения радиуса. Попадание изомувера другого типа в этот радиус позволит начать взаимодействие.<br />
*'''Цель при действии''' (''mtarget'') - мувер может быть целью взаимодействия пока сам действует<br />
*'''Запретить действие''' (''disact'') - мувер не сможет перейти из acting_wait в acting<br />
*'''Время появления''' (''appear_time'') - время в миллисекундах появления и исчезания изомувера (длительность перехода по alpha)<br />
*'''Время провала''' (''fail_time'') - длительность анимации смерти объекта, по его окончанию произойдет переход в состояние ''disappear''<br />
*'''Время паузы''' (''pause_time'') - длительность "заморозки" объекта<br />
*'''Предмет паузы''' (''pause_item'') - предмет для включения паузы<br />
*'''fail при 0 жизни''' (''zerofail'') - 1- при нулевом уровне жизни изомувер перейдет в fail, 0 - останется жив<br />
*'''Не пересчитывать маршрут''' (''softrecalc'') - 1- при отключении ребер графа не произойдет пересчета маршрута, 0 - маршрут будет пересчитан<br />
*'''Реагировать на''' (''tapreact'') - 1- на тап, 0- на клик<br />
<br><br />
<br />
==Дополнительные параметры==<br />
[[Файл:Isomover1.png|right|300px]]<br />
*'''Графический ресурс:'''<br />
**вверх (''res0'') - графический ресурс движения вверх<br />
**вверх/вправо (''res1'') - графический ресурс движения вверх/вправо<br />
**вправо (''res2'') - графический ресурс движения вправо <br />
**вниз/вправо (''res3'') - графический ресурс движения вниз/вправо<br />
**вниз (''res4'') - графический ресурс движения вниз <br />
**вниз/влево (''res5'') - графический ресурс движения вниз/влево<br />
**влево (''res6'') - графический ресурс движения влево <br />
**вверх/влево (''res7'') - графический ресурс движения вверх/влево. Достаточно указать первые пять ресурсов, а остальные редактор отобразит автоматически симметрично<br />
**деятельность (''resa'') - графический ресурс для состояния acting<br />
**иконка персонажа (''char_ico'') - иконка, которая будет находится сверху над персонажем. Изменение масштаба во время игры не влияет на масштаб иконки. Рекомендуется создавать ее с пивотом у нижней границы, тогда при масштабировании не будет образовываться зазор между иконкой и графикой объекта<br />
**смещение иконки персонажа (''char_ico_shift'') - смещение иконки по вертикали<br />
**рисовать при действии (''resad'') - 1- мувер рисуется при состоянии acting, 0- не рисуется<br />
**провал (''resf'') - графический ресурс состояния fail. Может быть картинкой или анимацией<br />
**пауза (''resp'') - графический ресурс состояния pause<br />
**восстановление жизни (''resheal'') - графический ресурс восстановления жизни<br />
*'''3D ресурс'''<br />
**модель (''mdl'') - трехмерный ресурс для отображения объекта<br />
**scale x (''mdlSx'') - масштаб по оси ''x''<br />
**scale y (''mdlSy'') - масштаб по оси ''y''<br />
**scale z (''mdlSz'') - масштаб по оси ''z''<br />
*'''Звуки'''<br />
**всплывание подложки (''snd_panel'') - звук показывающейся подложки<br />
**исчезание подложки (''snd_panel_hide'') - звук прячущейся подложки<br />
**переход в acting (''snd_to_acting'') - звук перехода в состояние acting<br />
**применение предмета (''snd_item_used'') - звук применение предмета при взаимодействии<br />
**предмет при паузе (''snd_item_pause'') - звук применение предмета при паузе<br />
**конец паузы (''snd_pause_end'') - звук при окончании паузы<br />
**фейл взаимодействия (''snd_fail'') - звук при переходе в fail<br />
**успех взаимодействия (''snd_success'') - звук при переходе в win<br />
**клик (''snd_click'') - звук при клике<br />
*'''Коэффициент скорости'''<br />
**вертикальное (''speed_0'') - на этот коэффициент умножается скорость при вертикальном движении<br />
**диагональное (''speed_1'') - на этот коэффициент умножается скорость при диагональном движении<br />
**горизонтальное (''speed_2'') - на этот коэффициент умножается скорость при горизонтальном движении<br />
Обычно горизонтальный коэффициент равен 1.00, чуть меньше диагональный и еще меньше вертикальный. Это необходимо для создания реалистичности движения относительно перспективы. То есть объекты, двигаясь вверх, как бы отдаляются от нас в глубь, поэтому по экрану они движутся медленней<br />
[[Файл:Isomover2.png|right]]<br />
*'''Таймер''':<br />
**подложка (''digBg'') - фон для цифр таймера<br />
**цифры (''digNorm'') - набор из 10-и цифр в виде ресурса анимации (клипа)<br />
**двоеточие (''colNorm'') - графический ресурс двоеточия<br />
**dx (''dx'') - смещение таймера по оси ''x'' относительно пивота изомувера<br />
**dy (''dy'') - смещение таймера по оси ''y'' относительно пивота изомувера<br />
**dx между цифрами (''digShift'') - расстояние между цифрами таймера<br />
**dx от (''colShift'') - отступы числовых разрядов влево и вправо от двоеточия<br />
**жизнь (''objlife'') - здесь выбирается объект типа прогресс_бар для отображения шкалы уровня жизни. Progress_bar создается отдельным объектом<br />
Таймер позволяет отобразить время до окончания взаимодействия объектов. Например "корабль" прибыл в "порт" и начал отгружать груз. С помощью числового таймера или progress_bar можно увидеть через сколько закончится отгрузка. На рисунке справа показано взаимодействие двух объектов с изображение шкалы жизни одного из объектов и времени до конца взаимодействия.<br />
*'''Преследование'''<br />
**тип (''chasetype'') - тип объекта, который можно преследовать<br />
**радиус (''chaseradius'') - если объект указанного типа окажется в этом радиусе, то начнется преследование (например полицейская погоня)<br />
*'''Дорожное движение'''<br />
**радиус (''stopradius'') - объекты, которые двигались по одному ребру, останавливаются на расстоянии этого радиуса (необходимо для препятствия наслоений объектов на дороге, железнодорожных путях)<br />
*'''восстановление жизни''':<br />
**критический уровень (''pow_min'') - Критический уровень жизни<br />
**предмет (''pow_item'') - Предмет восстановления <br />
**время (''pow_time'') - Время восстановления жизни<br />
<br />
*курсор (''curs'') - Графический ресурс курсора текущего и всех дочерних объектов<br />
*прокликиваемая (''passClk'') - Если 1, то картинка прозрачна для клика мышкой (пропускает объектам под ней). Если 2, то картинка сама обрабатывает клик, но и пропускает его дальше" regexp="нет=0, да=1, обработать и пропустить=2<br />
*группа (''gr'') - Группа, в которую входит текущий объект<br />
*eitems (''eitems'') - Объект типа eitems<br />
<br><br />
<br />
==Добавляемые параметры==<br />
[[Файл:Isomover9.png|right|300px]]<br />
[[Файл:+.png]] '''Взаимодействие с другими объектами''':<br />
*тип (''mtype'') - тип объекта с которым по настроенному ниже сценарию будет происходить взаимодействие, -1 для любого типа<br />
*min жизнь (''minlife'') - минимальное значение жизни для начала взаимодействия, -1 не проверять<br />
*max жизнь (''maxlife'') - минимальное значение жизни для начала взаимодействия, -1 не проверять<br />
*тип актив (''mtype_a'') - тип мувера, который активирует взаимодействие, если данный в процессе подготовки<br />
*анимация (''res_a'') - анимация взаимодействия, например боя, разгрузки, разговора. Перетаскивается мышкой из редактора ресурсов<br />
*старт тип (''stype'') - тип старта взаимодействия<br />
**0 - бесконечное ожидание тапа. Переход в состояние acting не начнется, пока не произойдет тап по объекту<br />
**1 - автоматический переход в состояние acting<br />
**2 - время, через которое произойдет переход из acting_wait в acting после начала взаимодействия объектов<br />
**3 - переход по значению жизни<br />
*старт таймер (''stimer'') - время, за которое нужно активировать взаимодействие тапом<br />
*старт изм.жизни (''slife'') - скорость изменения жизни до активации взаимодействия тапом<br />
*старт изм.жизни другого (''slife_o'') - скорость изменения жизни враг до активации взаимодействия тапом<br />
*предмет (''item'') - предмет, необходимый для запуска активности. Актуально, когда имеется объект economics<br />
*иконка (''ico'') - иконка активности<br />
*смещение иконки (''ico_shift'') - смещение иконки активности по вертикали<br />
*актив тип (''atype'') - тип старта взаимодействия<br />
**0 - бесконечное ожидание тапа. Переход в состояние acting не начнется, пока не произойдет тап по объекту<br />
**1 - автоматический переход в состояние acting<br />
**2 - время, через которое произойдет переход из acting_wait в acting после начала взаимодействия объектов<br />
**3 - переход по значению жизни<br />
*актив таймер (''atime'') - время, которое длится взаимодействие<br />
*актив изменение жизни (''alife'') - скорость изменения жизни текущего объекта (ед/сек) в состоянии active<br />
*актив изменение жизни другого (''alife_o'') - скорость изменения жизни другого объекта (ед/сек) в состоянии active<br />
<br />
[[Файл:Isomover3.png|right|300px]]<br />
*объект инит (''obj'') - объект, состояние которого нужно изменить при переходе изомувера в acting_wait<br />
*состояние инит (''st'') - новое состояние другого объекта<br />
*объект старт (''obj_s'') - объект, состояние которого нужно изменить при переходе изомувера в acting<br />
*состояние старт (''st_s'') - новое состояние другого объекта<br />
*объект фейл (''obj_f'') - объект, состояние которого нужно изменить при переходе изомувера в состояние fail (проигрыш)<br />
*состояние фейл (''st_f'') - новое состояние другого объекта<br />
*объект успех (''obj_w'') - объект, состояние которого нужно изменить при переходе изомувера в состояние win (в случае победы)<br />
*состояние успех (''st_w'') - новое состояние другого объекта<br />
*дельта жизнь (''deltalife'') при успехе взаимодействия изменить значение жизни на эту величину<br />
*переводить другой в фейл (''o_fail'') - 1- переводить цель действия в fail, 0- в idle<br />
*переводить другой в мув (''o_move'') - при неудачном действии 1- переводить цель действия в move, 0- в idle<br />
*можно ускорить (''canspeed'') - 1- действие можно ускорить. От этого параметра зависит, какое событие будет вызываться по клику на объект в состоянии acting<br />
*звук ожидания (''snd_wait'') - звук, который будет воспроизводиться в состоянии acting_wait <br />
*звук действия (''snd_act'') - звук, который будет воспроизводиться в состоянии acting<br />
Для каждого типа объектов, с которыми взаимодействие возможно, необходимо добавить отдельный параметр "взаимодействие с другими объектами" и настроить его. Объекты инит, старт, фейл и успех вызываются при переходе текущего объекта в соответствующие состояния. Например, это может быть диалоговое окно, предлагающее продолжить взаимодействие, запуск дополнительных индикаторов, фейерверк в случае победы.<br />
<br />
[[Файл:+.png]] '''Клик при простое''' (''nst_idle''):<br />
*объект - объект, состояние которого меняется, если изомувер был нажат в состоянии idel<br />
*состояние - новое состояние объекта<br />
[[Файл:+.png]] '''Изменить состояние объекта''' (''nst_move''), он же '''клик при движении''':<br />
*объект - объект, состояние которого меняется, если изомувер был нажат в состоянии move<br />
*состояние - новое состояние объекта<br />
[[Файл:+.png]] '''Клик при паузе''' (''nst_pause''):<br />
*объект - объект, состояние которого меняется, если изомувер был нажат в состоянии pause (заморозка)<br />
*состояние - новое состояние объекта<br />
[[Файл:+.png]] '''Изменить состояние объекта''' (''nst_aw_n'') он же '''клик при acting_wait, если другие действия не возможны'''<br />
*объект - объект, состояние которого меняется, если изомувер был нажат в состоянии acting_wait<br />
*состояние - новое состояние объекта<br />
[[Файл:+.png]] '''Изменить состояние объекта''' (''nst_a_1'') он же '''клик при acting, ускорение возможно'''<br />
*объект - объект, состояние которого меняется, если изомувер был нажат в состоянии acting и ускорение возможно<br />
*состояние - новое состояние объекта<br />
[[Файл:+.png]] '''Изменить состояние объекта''' (''nst_a_2'') он же '''клик при acting, ускорение НЕвозможно'''<br />
*объект - объект, состояние которого меняется, если изомувер был нажат в состоянии acting и ускорение не возможно<br />
*состояние - новое состояние объекта<br />
[[Файл:+.png]] '''Изменить состояние объекта''' (''nst_beact'') он же '''клик при beeng_acting'''<br />
*объект - объект, состояние которого меняется, если изомувер был нажат в состоянии beeng_acting, когда воздействие совершалось над ним другим объектом<br />
*состояние - новое состояние объекта<br />
[[Файл:+.png]] '''Конец движения''' (''nst_finish''):<br />
*объект - объект, состояние которого меняется, если изомувер закончил движение (достиг точки finish)<br />
*состояние - новое состояние объекта<br />
[[Файл:+.png]] '''Отправили в текущую ноду''' (''nst_place''):<br />
*объект - объект, состояние которого меняется, если изомувер направлен в ту же ноду, в которой и находится<br />
*состояние - новое состояние объекта<br />
[[Файл:+.png]] '''Перешел в fail''' (''nst_gopause''):<br />
*объект - объект, состояние которого меняется, если изомувер перешел в fail<br />
*состояние - новое состояние объекта<br />
[[Файл:+.png]] '''Перешел в pause''' (''nst_heal''):<br />
*объект - объект, состояние которого меняется, если изомувер Перешел в pause<br />
*состояние - новое состояние объекта<br />
[[Файл:+.png]] '''Восстановил здоровье''' (''nst_low_time''):<br />
*объект - объект, состояние которого меняется, если изомувер Восстановил здоровье<br />
*состояние - новое состояние объекта<br />
[[Файл:+.png]] '''Время истекло: изменить состояние объекта''' (''nst_low_time'') он же '''время на исходе: изменить состояние объекта''':<br />
*значение, при котором срабатывает обработчик<br />
*объект - объект, состояние которого меняется по истечению времени<br />
*состояние - новое состояние объекта<br />
<br><br />
<br />
==Состояния==<br />
[[Файл:isomover_box.png|right|350px]]<br />
*'''idle''' - дефолтное состояние, в которое isomover переходит после всех манипуляций. Недвижимым объектам следует передавать idle, чтобы они появились (нарисовались) на карте. Для движущихся объектов его практически не используют, объект сам рисуется с началом движения.<br><br />
*'''acting_wait''' - первое состояние взаимодействия (запускается первый таймер, анимация взаимодействия и ожидается старт).<br><br />
*'''acting''' - второе состояние взаимодействия (вызывается после применения предмета или клика, запускает второй таймер).<br><br />
*'''being_acted''' - в этом состоянии пребывает тот объект, над которым идет действие. Объект в этом состоянии невидим.<br><br />
*'''move''' - состояние движения от старта к финишу.<br><br />
*'''move_to_smooth''' - состояние движения от текущей ноды (или следующей, если объект идет) к финишу.<br><br />
*'''appear''' - показать по альфе за время появления.<br><br />
*'''disappear''' - скрыть по альфе за время появления.<br><br />
*'''prepare_acting''' - вызвать взаимодействие без оппонента. Перед вызовом нужно в поле param записать номер взаимодействия по порядку.<br><br />
*'''start_acting''' - продолжить взаимодействие без оппонента. Перед вызовом нужно в поле param записать номер взаимодействия по порядку.<br />
*'''pause''' - состояние "заморозки"<br />
<br><br />
<br />
==Особенности работы==<br />
[[Файл:Isomover6.png|right|300px]][[Файл:Isomover8.png|left|200px]]<br />
Движение объекта типа ''isomover'' задается с помощью отдельной машины состояний через которую происходит управление состояниями move, acting и остальными. Рассмотрим на конкретном примере. У нас есть объект '''woman''' типа ''isomover''. Необходимо, чтобы наш изомувер начал движение с точки b1 и дальше начал двигаться бесконечно по кольцу b2-b3-b4-b5. Движение задается машиной состояний ''woman_machine''.<br><br />
Для управления циклическим ходом назначим дополнительный параметр ''ww''. Название параметра должно быть уникально и не совпадать с параметрами игровых объектов.<br><br />
Для того, чтобы изомувер двигался каждый раз к новой точке, необходимо повторно инициализировать его точку финиша. Однако, если мы продолжим указывать ему состояние move для движения, то каждый раз он будет начинать движение с точки старта. Чтобы это исправить воспользуемся состоянием move_to_smooth, которое заставляет двигаться изомувер от текущей ноде к финишу, будто старт и финиш мы все время смещаем на шаг.<br />
<br>Основная логика будет находиться в состоянии ''circle_moving'' нашей машины. Надо сделать так, чтобы изомувер переходил в это состояние после движения по каждому из ребер. Для этого зайдем в свойства изомувера, нажмем правой кнопкой мыши и добавим параметр '''конец движения'''. У него есть поля ''объект'' и ''свойство''. Объект - машина состояний ''woman_machine'', состояние ''circle_moving'' этой машины. Таким образом, в конце каждого акта движения изомувер будет запускать состояние, в котором мы будем менять его точку финиша и запускать его движение.<br />
<br>Не забываем, что все операции с переменными должны отделяться скобками, как и сама переменная<br><br><br />
<br />
===Пример===<br />
Ознакомится с принципами работы isomover можно на примере следующего приложения. В isomap помещены два объекта isomover1 и isomover2. isomover2 совершает движение по определенному маршруту, заданному с помощью машины состояний iso2_mach (двигается из ноды p4 к заданной ноде p3 и совершает движение по кругу p3->p2->p8->p7->p3->...). isomover1 выходит из ноды p11 к заданной ноде p2 и ожидает клика на карту в точки "перекрестков" (по клику совершает движение к заданной ноде). Движение осуществляется с помощь машины iso1_navig. Во время движения isomover1 совершает атаку на isomover2, что описано в Добавленном свойстве объекта isomover1 "взаимодействие с другими объектами", если тот оказывается в достаточной близости (уничтожает его и двигается дальше). isomover2 будет "воскресать" после уничтожения и двигаться по заданному маршруту по истечению некоторого времени.<br />
*'''Пример:<br />
S:\!MOBILE\!!!EditorGames\Wiki_sample\Isomap.rar<br />
<br />
<br />
<br />
[[Category:Main objects]]<br />
[[Category:Game mechanic]]</div>Iskoroboghttps://wiki.appsalutecreator.com/index.php?title=Isomover&diff=8626Isomover2017-03-16T07:50:41Z<p>Iskorobog: </p>
<hr />
<div>'''Isomover''' - [[Object|объект]] используется для осуществления движения и взаимодействия в изометрической карте. <br />
<br />
Isomover обязательно должен быть подобъектом [[isomap]]. <br />
<br />
В проекте с картой ([[isomap]]) и движущимися по ней объектами (isomover) часто используют [[economics]] и [[eitems]] потому, что для завершения процессов часто требуется применить предмет или ресурс.<br />
<br />
Начало движения множества изомуверов сильно нагружает систему, поэтому следует позаботиться, чтобы это происходило не в один момент времени. По возможности добавляйте небольшую и различную паузу каждому изомуверу перед стартом.<br><br><br />
==Основные параметры==<br />
*'''Положение''' (''x'',''y'') - рекомендуется выносить isomover-объекты за пределы карты. Иначе, если объект должен появляться не сразу, то он будет просто стоять без движения<br />
*'''Память''' - всегда должно быть значение 1, обязательное условие корректной работы. Это позволяет объекту двигаться последовательно, не инициализируясь после каждого движения в исходной точке<br />
*'''тип ребра min''' (''edge_t_min'') - перемещаться по ребрам не ниже заданного, -1 не проверять<br />
*'''тип ребра max''' (''edge_t_max'') - перемещаться по ребрам не выше заданного, -1 не проверять. Типы ребер задаются в isomap<br />
*'''Старт''' (''start'') - точка старта, выбирается из списка точек Isomap<br />
*'''Финиш''' (''finish'') - точка финиша, выбирается из списка точек Isomap<br />
*'''Скорость (макс)''' (''vel_max'') - максимальная скорость, с которой передвигается объект Isomover<br />
*'''Скорость''' (''vel'') - не использовать, вычисляется по формуле автоматически, позже будет скрыто. V = Vmax*(k+(1-k)*(P/Pmax))<br />
*'''Жизнь (макс)''' (''pow_max'') - максимальная жизнь<br />
*'''Жизнь''' (''pow'') - текущая жизнь, высчитывается по формуле автоматически<br />
*'''Сохранять жизнь в опции''' (''powsave'') - если да, то объекты сцены сохранят уровень жизни при выходе со сцены и возвращении на нее<br />
*'''Коэффициент скорости''' (''speed_k'') - коэффициент k в формуле расчета скорости. Чтобы скорость не зависела от значения жизни - указываем speed_k = 1<br />
*'''Менять угол''' (''fixangle'') - изменение угла для предания плавности смены графики при дугообразном перемещении объекта. С появлением 3D-объектов больше не используется<br />
*'''Тип''' (''mtype'') - объекты можно разделять на типы (люди, монстры, звери и т.д.). Взаимодействие происходит между объектами разных типов, настраивается в добавляемых параметрах<br />
*'''Радиус''' (''mradius'') - значения радиуса. Попадание изомувера другого типа в этот радиус позволит начать взаимодействие.<br />
*'''Цель при действии''' (''mtarget'') - мувер может быть целью взаимодействия пока сам действует<br />
*'''Запретить действие''' (''disact'') - мувер не сможет перейти из acting_wait в acting<br />
*'''Время появления''' (''appear_time'') - время в миллисекундах появления и исчезания изомувера (длительность перехода по alpha)<br />
*'''Время провала''' (''fail_time'') - длительность анимации смерти объекта, по его окончанию произойдет переход в состояние ''disappear''<br />
*'''Время паузы''' (''pause_time'') - длительность "заморозки" объекта<br />
*'''Предмет паузы''' (''pause_item'') - предмет для включения паузы<br />
*'''fail при 0 жизни''' (''zerofail'') - 1- при нулевом уровне жизни изомувер перейдет в fail, 0 - останется жив<br />
*'''Не пересчитывать маршрут''' (''softrecalc'') - 1- при отключении ребер графа не произойдет пересчета маршрута, 0 - маршрут будет пересчитан<br />
*'''Реагировать на''' (''tapreact'') - 1- на тап, 0- на клик<br />
<br><br />
<br />
==Дополнительные параметры==<br />
[[Файл:Isomover1.png|right|300px]]<br />
*'''Графический ресурс:'''<br />
**вверх (''res0'') - графический ресурс движения вверх<br />
**вверх/вправо (''res1'') - графический ресурс движения вверх/вправо<br />
**вправо (''res2'') - графический ресурс движения вправо <br />
**вниз/вправо (''res3'') - графический ресурс движения вниз/вправо<br />
**вниз (''res4'') - графический ресурс движения вниз <br />
**вниз/влево (''res5'') - графический ресурс движения вниз/влево<br />
**влево (''res6'') - графический ресурс движения влево <br />
**вверх/влево (''res7'') - графический ресурс движения вверх/влево. Достаточно указать первые пять ресурсов, а остальные редактор отобразит автоматически симметрично<br />
**деятельность (''resa'') - графический ресурс для состояния acting<br />
**иконка персонажа (''char_ico'') - иконка, которая будет находится сверху над персонажем. Изменение масштаба во время игры не влияет на масштаб иконки. Рекомендуется создавать ее с пивотом у нижней границы, тогда при масштабировании не будет образовываться зазор между иконкой и графикой объекта<br />
**смещение иконки персонажа (''char_ico_shift'') - смещение иконки по вертикали<br />
**рисовать при действии (''resad'') - 1- мувер рисуется при состоянии acting, 0- не рисуется<br />
**провал (''resf'') - графический ресурс состояния fail. Может быть картинкой или анимацией<br />
**пауза (''resp'') - графический ресурс состояния pause<br />
**восстановление жизни (''resheal'') - графический ресурс восстановления жизни<br />
*'''3D ресурс'''<br />
**модель (''mdl'') - трехмерный ресурс для отображения объекта<br />
**scale x (''mdlSx'') - масштаб по оси ''x''<br />
**scale y (''mdlSy'') - масштаб по оси ''y''<br />
**scale z (''mdlSz'') - масштаб по оси ''z''<br />
*'''Звуки'''<br />
**всплывание подложки (''snd_panel'') - звук показывающейся подложки<br />
**исчезание подложки (''snd_panel_hide'') - звук прячущейся подложки<br />
**переход в acting (''snd_to_acting'') - звук перехода в состояние acting<br />
**применение предмета (''snd_item_used'') - звук применение предмета при взаимодействии<br />
**предмет при паузе (''snd_item_pause'') - звук применение предмета при паузе<br />
**конец паузы (''snd_pause_end'') - звук при окончании паузы<br />
**фейл взаимодействия (''snd_fail'') - звук при переходе в fail<br />
**успех взаимодействия (''snd_success'') - звук при переходе в win<br />
**клик (''snd_click'') - звук при клике<br />
*'''Коэффициент скорости'''<br />
**вертикальное (''speed_0'') - на этот коэффициент умножается скорость при вертикальном движении<br />
**диагональное (''speed_1'') - на этот коэффициент умножается скорость при диагональном движении<br />
**горизонтальное (''speed_2'') - на этот коэффициент умножается скорость при горизонтальном движении<br />
Обычно горизонтальный коэффициент равен 1.00, чуть меньше диагональный и еще меньше вертикальный. Это необходимо для создания реалистичности движения относительно перспективы. То есть объекты, двигаясь вверх, как бы отдаляются от нас в глубь, поэтому по экрану они движутся медленней<br />
[[Файл:Isomover2.png|right]]<br />
*'''Таймер''':<br />
**подложка (''digBg'') - фон для цифр таймера<br />
**цифры (''digNorm'') - набор из 10-и цифр в виде ресурса анимации (клипа)<br />
**двоеточие (''colNorm'') - графический ресурс двоеточия<br />
**dx (''dx'') - смещение таймера по оси ''x'' относительно пивота изомувера<br />
**dy (''dy'') - смещение таймера по оси ''y'' относительно пивота изомувера<br />
**dx между цифрами (''digShift'') - расстояние между цифрами таймера<br />
**dx от (''colShift'') - отступы числовых разрядов влево и вправо от двоеточия<br />
**жизнь (''objlife'') - здесь выбирается объект типа прогресс_бар для отображения шкалы уровня жизни. Progress_bar создается отдельным объектом<br />
Таймер позволяет отобразить время до окончания взаимодействия объектов. Например "корабль" прибыл в "порт" и начал отгружать груз. С помощью числового таймера или progress_bar можно увидеть через сколько закончится отгрузка. На рисунке справа показано взаимодействие двух объектов с изображение шкалы жизни одного из объектов и времени до конца взаимодействия.<br />
*'''Преследование'''<br />
**тип (''chasetype'') - тип объекта, который можно преследовать<br />
**радиус (''chaseradius'') - если объект указанного типа окажется в этом радиусе, то начнется преследование (например полицейская погоня)<br />
*'''Дорожное движение'''<br />
**радиус (''stopradius'') - объекты, которые двигались по одному ребру, останавливаются на расстоянии этого радиуса (необходимо для препятствия наслоений объектов на дороге, железнодорожных путях)<br />
*'''восстановление жизни''':<br />
**критический уровень (''pow_min'') - Критический уровень жизни<br />
**предмет (''pow_item'') - Предмет восстановления <br />
**время (''pow_time'') - Время восстановления жизни<br />
<br />
*курсор (''curs'') - Графический ресурс курсора текущего и всех дочерних объектов<br />
*прокликиваемая (''passClk'') - Если 1, то картинка прозрачна для клика мышкой (пропускает объектам под ней). Если 2, то картинка сама обрабатывает клик, но и пропускает его дальше" regexp="нет=0, да=1, обработать и пропустить=2<br />
*группа (''gr'') - Группа, в которую входит текущий объект<br />
*eitems (''eitems'') - Объект типа eitems<br />
<br><br />
<br />
==Добавляемые параметры==<br />
[[Файл:Isomover9.png|right|300px]]<br />
[[Файл:+.png]] '''Взаимодействие с другими объектами''':<br />
*тип (''mtype'') - тип объекта с которым по настроенному ниже сценарию будет происходить взаимодействие, -1 для любого типа<br />
*min жизнь (''minlife'') - минимальное значение жизни для начала взаимодействия, -1 не проверять<br />
*max жизнь (''maxlife'') - минимальное значение жизни для начала взаимодействия, -1 не проверять<br />
*тип актив (''mtype_a'') - тип мувера, который активирует взаимодействие, если данный в процессе подготовки<br />
*анимация (''res_a'') - анимация взаимодействия, например боя, разгрузки, разговора. Перетаскивается мышкой из редактора ресурсов<br />
*старт тип (''stype'') - тип старта взаимодействия<br />
**0 - бесконечное ожидание тапа. Переход в состояние acting не начнется, пока не произойдет тап по объекту<br />
**1 - автоматический переход в состояние acting<br />
**2 - время, через которое произойдет переход из acting_wait в acting после начала взаимодействия объектов<br />
**3 - переход по значению жизни<br />
*старт таймер (''stimer'') - время, за которое нужно активировать взаимодействие тапом<br />
*старт изм.жизни (''slife'') - скорость изменения жизни до активации взаимодействия тапом<br />
*старт изм.жизни другого (''slife_o'') - скорость изменения жизни враг до активации взаимодействия тапом<br />
*предмет (''item'') - предмет, необходимый для запуска активности. Актуально, когда имеется объект economics<br />
*иконка (''ico'') - иконка активности<br />
*смещение иконки (''ico_shift'') - смещение иконки активности по вертикали<br />
*актив тип (''atype'') - тип старта взаимодействия<br />
**0 - бесконечное ожидание тапа. Переход в состояние acting не начнется, пока не произойдет тап по объекту<br />
**1 - автоматический переход в состояние acting<br />
**2 - время, через которое произойдет переход из acting_wait в acting после начала взаимодействия объектов<br />
**3 - переход по значению жизни<br />
*актив таймер (''atime'') - время, которое длится взаимодействие<br />
*актив изменение жизни (''alife'') - скорость изменения жизни текущего объекта (ед/сек) в состоянии active<br />
*актив изменение жизни другого (''alife_o'') - скорость изменения жизни другого объекта (ед/сек) в состоянии active<br />
<br />
[[Файл:Isomover3.png|right|300px]]<br />
*объект инит (''obj'') - объект, состояние которого нужно изменить при переходе изомувера в acting_wait<br />
*состояние инит (''st'') - новое состояние другого объекта<br />
*объект старт (''obj_s'') - объект, состояние которого нужно изменить при переходе изомувера в acting<br />
*состояние старт (''st_s'') - новое состояние другого объекта<br />
*объект фейл (''obj_f'') - объект, состояние которого нужно изменить при переходе изомувера в состояние fail (проигрыш)<br />
*состояние фейл (''st_f'') - новое состояние другого объекта<br />
*объект успех (''obj_w'') - объект, состояние которого нужно изменить при переходе изомувера в состояние win (в случае победы)<br />
*состояние успех (''st_w'') - новое состояние другого объекта<br />
*дельта жизнь (''deltalife'') при успехе взаимодействия изменить значение жизни на эту величину<br />
*переводить другой в фейл (''o_fail'') - 1- переводить цель действия в fail, 0- в idle<br />
*переводить другой в мув (''o_move'') - при неудачном действии 1- переводить цель действия в move, 0- в idle<br />
*можно ускорить (''canspeed'') - 1- действие можно ускорить. От этого параметра зависит, какое событие будет вызываться по клику на объект в состоянии acting<br />
*звук ожидания (''snd_wait'') - звук, который будет воспроизводиться в состоянии acting_wait <br />
*звук действия (''snd_act'') - звук, который будет воспроизводиться в состоянии acting<br />
Для каждого типа объектов, с которыми взаимодействие возможно, необходимо добавить отдельный параметр "взаимодействие с другими объектами" и настроить его. Объекты инит, старт, фейл и успех вызываются при переходе текущего объекта в соответствующие состояния. Например, это может быть диалоговое окно, предлагающее продолжить взаимодействие, запуск дополнительных индикаторов, фейерверк в случае победы.<br />
<br />
[[Файл:+.png]] '''Клик при простое''' (''nst_idle''):<br />
*объект - объект, состояние которого меняется, если изомувер был нажат в состоянии idel<br />
*состояние - новое состояние объекта<br />
[[Файл:+.png]] '''Изменить состояние объекта''' (''nst_move''), он же '''клик при движении''':<br />
*объект - объект, состояние которого меняется, если изомувер был нажат в состоянии move<br />
*состояние - новое состояние объекта<br />
[[Файл:+.png]] '''Клик при паузе''' (''nst_pause''):<br />
*объект - объект, состояние которого меняется, если изомувер был нажат в состоянии pause (заморозка)<br />
*состояние - новое состояние объекта<br />
[[Файл:+.png]] '''Изменить состояние объекта''' (''nst_aw_n'') он же '''клик при acting_wait, если другие действия не возможны'''<br />
*объект - объект, состояние которого меняется, если изомувер был нажат в состоянии acting_wait<br />
*состояние - новое состояние объекта<br />
[[Файл:+.png]] '''Изменить состояние объекта''' (''nst_a_1'') он же '''клик при acting, ускорение возможно'''<br />
*объект - объект, состояние которого меняется, если изомувер был нажат в состоянии acting и ускорение возможно<br />
*состояние - новое состояние объекта<br />
[[Файл:+.png]] '''Изменить состояние объекта''' (''nst_a_2'') он же '''клик при acting, ускорение НЕвозможно'''<br />
*объект - объект, состояние которого меняется, если изомувер был нажат в состоянии acting и ускорение не возможно<br />
*состояние - новое состояние объекта<br />
[[Файл:+.png]] '''Изменить состояние объекта''' (''nst_beact'') он же '''клик при beeng_acting'''<br />
*объект - объект, состояние которого меняется, если изомувер был нажат в состоянии beeng_acting, когда воздействие совершалось над ним другим объектом<br />
*состояние - новое состояние объекта<br />
[[Файл:+.png]] '''Конец движения''' (''nst_finish''):<br />
*объект - объект, состояние которого меняется, если изомувер закончил движение (достиг точки finish)<br />
*состояние - новое состояние объекта<br />
[[Файл:+.png]] '''Отправили в текущую ноду''' (''nst_place''):<br />
*объект - объект, состояние которого меняется, если изомувер направлен в ту же ноду, в которой и находится<br />
*состояние - новое состояние объекта<br />
[[Файл:+.png]] '''Перешел в fail''' (''nst_gopause''):<br />
*объект - объект, состояние которого меняется, если изомувер перешел в fail<br />
*состояние - новое состояние объекта<br />
[[Файл:+.png]] '''Перешел в pause''' (''nst_heal''):<br />
*объект - объект, состояние которого меняется, если изомувер Перешел в pause<br />
*состояние - новое состояние объекта<br />
[[Файл:+.png]] '''Восстановил здоровье''' (''nst_low_time''):<br />
*объект - объект, состояние которого меняется, если изомувер Восстановил здоровье<br />
*состояние - новое состояние объекта<br />
[[Файл:+.png]] '''Время истекло: изменить состояние объекта''' (''nst_low_time'') он же '''время на исходе: изменить состояние объекта''':<br />
*значение, при котором срабатывает обработчик<br />
*объект - объект, состояние которого меняется по истечению времени<br />
*состояние - новое состояние объекта<br />
<br><br />
<br />
==Состояния==<br />
[[Файл:isomover_box.png|right|350px]]<br />
*'''idle''' - дефолтное состояние, в которое isomover переходит после всех манипуляций. Недвижимым объектам следует передавать idle, чтобы они появились (нарисовались) на карте. Для движущихся объектов его практически не используют, объект сам рисуется с началом движения.<br><br />
*'''acting_wait''' - первое состояние взаимодействия (запускается первый таймер, анимация взаимодействия и ожидается старт).<br><br />
*'''acting''' - второе состояние взаимодействия (вызывается после применения предмета или клика, запускает второй таймер).<br><br />
*'''being_acted''' - в этом состоянии пребывает тот объект, над которым идет действие. Объект в этом состоянии невидим.<br><br />
*'''move''' - состояние движения от старта к финишу.<br><br />
*'''move_to_smooth''' - состояние движения от текущей ноды (или следующей, если объект идет) к финишу.<br><br />
*'''appear''' - показать по альфе за время появления.<br><br />
*'''disappear''' - скрыть по альфе за время появления.<br><br />
*'''prepare_acting''' - вызвать взаимодействие без оппонента. Перед вызовом нужно в поле param записать номер взаимодействия по порядку.<br><br />
*'''start_acting''' - продолжить взаимодействие без оппонента. Перед вызовом нужно в поле param записать номер взаимодействия по порядку.<br />
*'''pause''' - состояние "заморозки"<br />
<br><br />
<br />
==Особенности работы==<br />
[[Файл:Isomover6.png|right|300px]][[Файл:Isomover8.png|left|200px]]<br />
Движение объекта типа ''isomover'' задается с помощью отдельной машины состояний через которую происходит управление состояниями move, acting и остальными. Рассмотрим на конкретном примере. У нас есть объект '''woman''' типа ''isomover''. Необходимо, чтобы наш изомувер начал движение с точки b1 и дальше начал двигаться бесконечно по кольцу b2-b3-b4-b5. Движение задается машиной состояний ''woman_machine''.<br><br />
Для управления циклическим ходом назначим дополнительный параметр ''ww''. Название параметра должно быть уникально и не совпадать с параметрами игровых объектов.<br><br />
Для того, чтобы изомувер двигался каждый раз к новой точке, необходимо повторно инициализировать его точку финиша. Однако, если мы продолжим указывать ему состояние move для движения, то каждый раз он будет начинать движение с точки старта. Чтобы это исправить воспользуемся состоянием move_to_smooth, которое заставляет двигаться изомувер от текущей ноде к финишу, будто старт и финиш мы все время смещаем на шаг.<br />
<br>Основная логика будет находиться в состоянии ''circle_moving'' нашей машины. Надо сделать так, чтобы изомувер переходил в это состояние после движения по каждому из ребер. Для этого зайдем в свойства изомувера, нажмем правой кнопкой мыши и добавим параметр '''конец движения'''. У него есть поля ''объект'' и ''свойство''. Объект - машина состояний ''woman_machine'', состояние ''circle_moving'' этой машины. Таким образом, в конце каждого акта движения изомувер будет запускать состояние, в котором мы будем менять его точку финиша и запускать его движение.<br />
<br>Не забываем, что все операции с переменными должны отделяться скобками, как и сама переменная<br><br><br />
<br />
===Пример===<br />
[[Category:Main objects]]<br />
[[Category:Game mechanic]]</div>Iskoroboghttps://wiki.appsalutecreator.com/index.php?title=Isomover&diff=8625Isomover2017-03-16T07:50:28Z<p>Iskorobog: /* Пример */</p>
<hr />
<div>'''Isomover''' - [[Object|объект]] используется для осуществления движения и взаимодействия в изометрической карте. <br />
<br />
Isomover обязательно должен быть подобъектом [[isomap]]. <br />
<br />
В проекте с картой ([[isomap]]) и движущимися по ней объектами (isomover) часто используют [[economics]] и [[eitems]] потому, что для завершения процессов часто требуется применить предмет или ресурс.<br />
<br />
Начало движения множества изомуверов сильно нагружает систему, поэтому следует позаботиться, чтобы это происходило не в один момент времени. По возможности добавляйте небольшую и различную паузу каждому изомуверу перед стартом.<br><br><br />
==Основные параметры==<br />
*'''Положение''' (''x'',''y'') - рекомендуется выносить isomover-объекты за пределы карты. Иначе, если объект должен появляться не сразу, то он будет просто стоять без движения<br />
*'''Память''' - всегда должно быть значение 1, обязательное условие корректной работы. Это позволяет объекту двигаться последовательно, не инициализируясь после каждого движения в исходной точке<br />
*'''тип ребра min''' (''edge_t_min'') - перемещаться по ребрам не ниже заданного, -1 не проверять<br />
*'''тип ребра max''' (''edge_t_max'') - перемещаться по ребрам не выше заданного, -1 не проверять. Типы ребер задаются в isomap<br />
*'''Старт''' (''start'') - точка старта, выбирается из списка точек Isomap<br />
*'''Финиш''' (''finish'') - точка финиша, выбирается из списка точек Isomap<br />
*'''Скорость (макс)''' (''vel_max'') - максимальная скорость, с которой передвигается объект Isomover<br />
*'''Скорость''' (''vel'') - не использовать, вычисляется по формуле автоматически, позже будет скрыто. V = Vmax*(k+(1-k)*(P/Pmax))<br />
*'''Жизнь (макс)''' (''pow_max'') - максимальная жизнь<br />
*'''Жизнь''' (''pow'') - текущая жизнь, высчитывается по формуле автоматически<br />
*'''Сохранять жизнь в опции''' (''powsave'') - если да, то объекты сцены сохранят уровень жизни при выходе со сцены и возвращении на нее<br />
*'''Коэффициент скорости''' (''speed_k'') - коэффициент k в формуле расчета скорости. Чтобы скорость не зависела от значения жизни - указываем speed_k = 1<br />
*'''Менять угол''' (''fixangle'') - изменение угла для предания плавности смены графики при дугообразном перемещении объекта. С появлением 3D-объектов больше не используется<br />
*'''Тип''' (''mtype'') - объекты можно разделять на типы (люди, монстры, звери и т.д.). Взаимодействие происходит между объектами разных типов, настраивается в добавляемых параметрах<br />
*'''Радиус''' (''mradius'') - значения радиуса. Попадание изомувера другого типа в этот радиус позволит начать взаимодействие.<br />
*'''Цель при действии''' (''mtarget'') - мувер может быть целью взаимодействия пока сам действует<br />
*'''Запретить действие''' (''disact'') - мувер не сможет перейти из acting_wait в acting<br />
*'''Время появления''' (''appear_time'') - время в миллисекундах появления и исчезания изомувера (длительность перехода по alpha)<br />
*'''Время провала''' (''fail_time'') - длительность анимации смерти объекта, по его окончанию произойдет переход в состояние ''disappear''<br />
*'''Время паузы''' (''pause_time'') - длительность "заморозки" объекта<br />
*'''Предмет паузы''' (''pause_item'') - предмет для включения паузы<br />
*'''fail при 0 жизни''' (''zerofail'') - 1- при нулевом уровне жизни изомувер перейдет в fail, 0 - останется жив<br />
*'''Не пересчитывать маршрут''' (''softrecalc'') - 1- при отключении ребер графа не произойдет пересчета маршрута, 0 - маршрут будет пересчитан<br />
*'''Реагировать на''' (''tapreact'') - 1- на тап, 0- на клик<br />
<br><br />
<br />
==Дополнительные параметры==<br />
[[Файл:Isomover1.png|right|300px]]<br />
*'''Графический ресурс:'''<br />
**вверх (''res0'') - графический ресурс движения вверх<br />
**вверх/вправо (''res1'') - графический ресурс движения вверх/вправо<br />
**вправо (''res2'') - графический ресурс движения вправо <br />
**вниз/вправо (''res3'') - графический ресурс движения вниз/вправо<br />
**вниз (''res4'') - графический ресурс движения вниз <br />
**вниз/влево (''res5'') - графический ресурс движения вниз/влево<br />
**влево (''res6'') - графический ресурс движения влево <br />
**вверх/влево (''res7'') - графический ресурс движения вверх/влево. Достаточно указать первые пять ресурсов, а остальные редактор отобразит автоматически симметрично<br />
**деятельность (''resa'') - графический ресурс для состояния acting<br />
**иконка персонажа (''char_ico'') - иконка, которая будет находится сверху над персонажем. Изменение масштаба во время игры не влияет на масштаб иконки. Рекомендуется создавать ее с пивотом у нижней границы, тогда при масштабировании не будет образовываться зазор между иконкой и графикой объекта<br />
**смещение иконки персонажа (''char_ico_shift'') - смещение иконки по вертикали<br />
**рисовать при действии (''resad'') - 1- мувер рисуется при состоянии acting, 0- не рисуется<br />
**провал (''resf'') - графический ресурс состояния fail. Может быть картинкой или анимацией<br />
**пауза (''resp'') - графический ресурс состояния pause<br />
**восстановление жизни (''resheal'') - графический ресурс восстановления жизни<br />
*'''3D ресурс'''<br />
**модель (''mdl'') - трехмерный ресурс для отображения объекта<br />
**scale x (''mdlSx'') - масштаб по оси ''x''<br />
**scale y (''mdlSy'') - масштаб по оси ''y''<br />
**scale z (''mdlSz'') - масштаб по оси ''z''<br />
*'''Звуки'''<br />
**всплывание подложки (''snd_panel'') - звук показывающейся подложки<br />
**исчезание подложки (''snd_panel_hide'') - звук прячущейся подложки<br />
**переход в acting (''snd_to_acting'') - звук перехода в состояние acting<br />
**применение предмета (''snd_item_used'') - звук применение предмета при взаимодействии<br />
**предмет при паузе (''snd_item_pause'') - звук применение предмета при паузе<br />
**конец паузы (''snd_pause_end'') - звук при окончании паузы<br />
**фейл взаимодействия (''snd_fail'') - звук при переходе в fail<br />
**успех взаимодействия (''snd_success'') - звук при переходе в win<br />
**клик (''snd_click'') - звук при клике<br />
*'''Коэффициент скорости'''<br />
**вертикальное (''speed_0'') - на этот коэффициент умножается скорость при вертикальном движении<br />
**диагональное (''speed_1'') - на этот коэффициент умножается скорость при диагональном движении<br />
**горизонтальное (''speed_2'') - на этот коэффициент умножается скорость при горизонтальном движении<br />
Обычно горизонтальный коэффициент равен 1.00, чуть меньше диагональный и еще меньше вертикальный. Это необходимо для создания реалистичности движения относительно перспективы. То есть объекты, двигаясь вверх, как бы отдаляются от нас в глубь, поэтому по экрану они движутся медленней<br />
[[Файл:Isomover2.png|right]]<br />
*'''Таймер''':<br />
**подложка (''digBg'') - фон для цифр таймера<br />
**цифры (''digNorm'') - набор из 10-и цифр в виде ресурса анимации (клипа)<br />
**двоеточие (''colNorm'') - графический ресурс двоеточия<br />
**dx (''dx'') - смещение таймера по оси ''x'' относительно пивота изомувера<br />
**dy (''dy'') - смещение таймера по оси ''y'' относительно пивота изомувера<br />
**dx между цифрами (''digShift'') - расстояние между цифрами таймера<br />
**dx от (''colShift'') - отступы числовых разрядов влево и вправо от двоеточия<br />
**жизнь (''objlife'') - здесь выбирается объект типа прогресс_бар для отображения шкалы уровня жизни. Progress_bar создается отдельным объектом<br />
Таймер позволяет отобразить время до окончания взаимодействия объектов. Например "корабль" прибыл в "порт" и начал отгружать груз. С помощью числового таймера или progress_bar можно увидеть через сколько закончится отгрузка. На рисунке справа показано взаимодействие двух объектов с изображение шкалы жизни одного из объектов и времени до конца взаимодействия.<br />
*'''Преследование'''<br />
**тип (''chasetype'') - тип объекта, который можно преследовать<br />
**радиус (''chaseradius'') - если объект указанного типа окажется в этом радиусе, то начнется преследование (например полицейская погоня)<br />
*'''Дорожное движение'''<br />
**радиус (''stopradius'') - объекты, которые двигались по одному ребру, останавливаются на расстоянии этого радиуса (необходимо для препятствия наслоений объектов на дороге, железнодорожных путях)<br />
*'''восстановление жизни''':<br />
**критический уровень (''pow_min'') - Критический уровень жизни<br />
**предмет (''pow_item'') - Предмет восстановления <br />
**время (''pow_time'') - Время восстановления жизни<br />
<br />
*курсор (''curs'') - Графический ресурс курсора текущего и всех дочерних объектов<br />
*прокликиваемая (''passClk'') - Если 1, то картинка прозрачна для клика мышкой (пропускает объектам под ней). Если 2, то картинка сама обрабатывает клик, но и пропускает его дальше" regexp="нет=0, да=1, обработать и пропустить=2<br />
*группа (''gr'') - Группа, в которую входит текущий объект<br />
*eitems (''eitems'') - Объект типа eitems<br />
<br><br />
<br />
==Добавляемые параметры==<br />
[[Файл:Isomover9.png|right|300px]]<br />
[[Файл:+.png]] '''Взаимодействие с другими объектами''':<br />
*тип (''mtype'') - тип объекта с которым по настроенному ниже сценарию будет происходить взаимодействие, -1 для любого типа<br />
*min жизнь (''minlife'') - минимальное значение жизни для начала взаимодействия, -1 не проверять<br />
*max жизнь (''maxlife'') - минимальное значение жизни для начала взаимодействия, -1 не проверять<br />
*тип актив (''mtype_a'') - тип мувера, который активирует взаимодействие, если данный в процессе подготовки<br />
*анимация (''res_a'') - анимация взаимодействия, например боя, разгрузки, разговора. Перетаскивается мышкой из редактора ресурсов<br />
*старт тип (''stype'') - тип старта взаимодействия<br />
**0 - бесконечное ожидание тапа. Переход в состояние acting не начнется, пока не произойдет тап по объекту<br />
**1 - автоматический переход в состояние acting<br />
**2 - время, через которое произойдет переход из acting_wait в acting после начала взаимодействия объектов<br />
**3 - переход по значению жизни<br />
*старт таймер (''stimer'') - время, за которое нужно активировать взаимодействие тапом<br />
*старт изм.жизни (''slife'') - скорость изменения жизни до активации взаимодействия тапом<br />
*старт изм.жизни другого (''slife_o'') - скорость изменения жизни враг до активации взаимодействия тапом<br />
*предмет (''item'') - предмет, необходимый для запуска активности. Актуально, когда имеется объект economics<br />
*иконка (''ico'') - иконка активности<br />
*смещение иконки (''ico_shift'') - смещение иконки активности по вертикали<br />
*актив тип (''atype'') - тип старта взаимодействия<br />
**0 - бесконечное ожидание тапа. Переход в состояние acting не начнется, пока не произойдет тап по объекту<br />
**1 - автоматический переход в состояние acting<br />
**2 - время, через которое произойдет переход из acting_wait в acting после начала взаимодействия объектов<br />
**3 - переход по значению жизни<br />
*актив таймер (''atime'') - время, которое длится взаимодействие<br />
*актив изменение жизни (''alife'') - скорость изменения жизни текущего объекта (ед/сек) в состоянии active<br />
*актив изменение жизни другого (''alife_o'') - скорость изменения жизни другого объекта (ед/сек) в состоянии active<br />
<br />
[[Файл:Isomover3.png|right|300px]]<br />
*объект инит (''obj'') - объект, состояние которого нужно изменить при переходе изомувера в acting_wait<br />
*состояние инит (''st'') - новое состояние другого объекта<br />
*объект старт (''obj_s'') - объект, состояние которого нужно изменить при переходе изомувера в acting<br />
*состояние старт (''st_s'') - новое состояние другого объекта<br />
*объект фейл (''obj_f'') - объект, состояние которого нужно изменить при переходе изомувера в состояние fail (проигрыш)<br />
*состояние фейл (''st_f'') - новое состояние другого объекта<br />
*объект успех (''obj_w'') - объект, состояние которого нужно изменить при переходе изомувера в состояние win (в случае победы)<br />
*состояние успех (''st_w'') - новое состояние другого объекта<br />
*дельта жизнь (''deltalife'') при успехе взаимодействия изменить значение жизни на эту величину<br />
*переводить другой в фейл (''o_fail'') - 1- переводить цель действия в fail, 0- в idle<br />
*переводить другой в мув (''o_move'') - при неудачном действии 1- переводить цель действия в move, 0- в idle<br />
*можно ускорить (''canspeed'') - 1- действие можно ускорить. От этого параметра зависит, какое событие будет вызываться по клику на объект в состоянии acting<br />
*звук ожидания (''snd_wait'') - звук, который будет воспроизводиться в состоянии acting_wait <br />
*звук действия (''snd_act'') - звук, который будет воспроизводиться в состоянии acting<br />
Для каждого типа объектов, с которыми взаимодействие возможно, необходимо добавить отдельный параметр "взаимодействие с другими объектами" и настроить его. Объекты инит, старт, фейл и успех вызываются при переходе текущего объекта в соответствующие состояния. Например, это может быть диалоговое окно, предлагающее продолжить взаимодействие, запуск дополнительных индикаторов, фейерверк в случае победы.<br />
<br />
[[Файл:+.png]] '''Клик при простое''' (''nst_idle''):<br />
*объект - объект, состояние которого меняется, если изомувер был нажат в состоянии idel<br />
*состояние - новое состояние объекта<br />
[[Файл:+.png]] '''Изменить состояние объекта''' (''nst_move''), он же '''клик при движении''':<br />
*объект - объект, состояние которого меняется, если изомувер был нажат в состоянии move<br />
*состояние - новое состояние объекта<br />
[[Файл:+.png]] '''Клик при паузе''' (''nst_pause''):<br />
*объект - объект, состояние которого меняется, если изомувер был нажат в состоянии pause (заморозка)<br />
*состояние - новое состояние объекта<br />
[[Файл:+.png]] '''Изменить состояние объекта''' (''nst_aw_n'') он же '''клик при acting_wait, если другие действия не возможны'''<br />
*объект - объект, состояние которого меняется, если изомувер был нажат в состоянии acting_wait<br />
*состояние - новое состояние объекта<br />
[[Файл:+.png]] '''Изменить состояние объекта''' (''nst_a_1'') он же '''клик при acting, ускорение возможно'''<br />
*объект - объект, состояние которого меняется, если изомувер был нажат в состоянии acting и ускорение возможно<br />
*состояние - новое состояние объекта<br />
[[Файл:+.png]] '''Изменить состояние объекта''' (''nst_a_2'') он же '''клик при acting, ускорение НЕвозможно'''<br />
*объект - объект, состояние которого меняется, если изомувер был нажат в состоянии acting и ускорение не возможно<br />
*состояние - новое состояние объекта<br />
[[Файл:+.png]] '''Изменить состояние объекта''' (''nst_beact'') он же '''клик при beeng_acting'''<br />
*объект - объект, состояние которого меняется, если изомувер был нажат в состоянии beeng_acting, когда воздействие совершалось над ним другим объектом<br />
*состояние - новое состояние объекта<br />
[[Файл:+.png]] '''Конец движения''' (''nst_finish''):<br />
*объект - объект, состояние которого меняется, если изомувер закончил движение (достиг точки finish)<br />
*состояние - новое состояние объекта<br />
[[Файл:+.png]] '''Отправили в текущую ноду''' (''nst_place''):<br />
*объект - объект, состояние которого меняется, если изомувер направлен в ту же ноду, в которой и находится<br />
*состояние - новое состояние объекта<br />
[[Файл:+.png]] '''Перешел в fail''' (''nst_gopause''):<br />
*объект - объект, состояние которого меняется, если изомувер перешел в fail<br />
*состояние - новое состояние объекта<br />
[[Файл:+.png]] '''Перешел в pause''' (''nst_heal''):<br />
*объект - объект, состояние которого меняется, если изомувер Перешел в pause<br />
*состояние - новое состояние объекта<br />
[[Файл:+.png]] '''Восстановил здоровье''' (''nst_low_time''):<br />
*объект - объект, состояние которого меняется, если изомувер Восстановил здоровье<br />
*состояние - новое состояние объекта<br />
[[Файл:+.png]] '''Время истекло: изменить состояние объекта''' (''nst_low_time'') он же '''время на исходе: изменить состояние объекта''':<br />
*значение, при котором срабатывает обработчик<br />
*объект - объект, состояние которого меняется по истечению времени<br />
*состояние - новое состояние объекта<br />
<br><br />
<br />
==Состояния==<br />
[[Файл:isomover_box.png|right|350px]]<br />
*'''idle''' - дефолтное состояние, в которое isomover переходит после всех манипуляций. Недвижимым объектам следует передавать idle, чтобы они появились (нарисовались) на карте. Для движущихся объектов его практически не используют, объект сам рисуется с началом движения.<br><br />
*'''acting_wait''' - первое состояние взаимодействия (запускается первый таймер, анимация взаимодействия и ожидается старт).<br><br />
*'''acting''' - второе состояние взаимодействия (вызывается после применения предмета или клика, запускает второй таймер).<br><br />
*'''being_acted''' - в этом состоянии пребывает тот объект, над которым идет действие. Объект в этом состоянии невидим.<br><br />
*'''move''' - состояние движения от старта к финишу.<br><br />
*'''move_to_smooth''' - состояние движения от текущей ноды (или следующей, если объект идет) к финишу.<br><br />
*'''appear''' - показать по альфе за время появления.<br><br />
*'''disappear''' - скрыть по альфе за время появления.<br><br />
*'''prepare_acting''' - вызвать взаимодействие без оппонента. Перед вызовом нужно в поле param записать номер взаимодействия по порядку.<br><br />
*'''start_acting''' - продолжить взаимодействие без оппонента. Перед вызовом нужно в поле param записать номер взаимодействия по порядку.<br />
*'''pause''' - состояние "заморозки"<br />
<br><br />
<br />
==Особенности работы==<br />
[[Файл:Isomover6.png|right|300px]][[Файл:Isomover8.png|left|200px]]<br />
Движение объекта типа ''isomover'' задается с помощью отдельной машины состояний через которую происходит управление состояниями move, acting и остальными. Рассмотрим на конкретном примере. У нас есть объект '''woman''' типа ''isomover''. Необходимо, чтобы наш изомувер начал движение с точки b1 и дальше начал двигаться бесконечно по кольцу b2-b3-b4-b5. Движение задается машиной состояний ''woman_machine''.<br><br />
Для управления циклическим ходом назначим дополнительный параметр ''ww''. Название параметра должно быть уникально и не совпадать с параметрами игровых объектов.<br><br />
Для того, чтобы изомувер двигался каждый раз к новой точке, необходимо повторно инициализировать его точку финиша. Однако, если мы продолжим указывать ему состояние move для движения, то каждый раз он будет начинать движение с точки старта. Чтобы это исправить воспользуемся состоянием move_to_smooth, которое заставляет двигаться изомувер от текущей ноде к финишу, будто старт и финиш мы все время смещаем на шаг.<br />
<br>Основная логика будет находиться в состоянии ''circle_moving'' нашей машины. Надо сделать так, чтобы изомувер переходил в это состояние после движения по каждому из ребер. Для этого зайдем в свойства изомувера, нажмем правой кнопкой мыши и добавим параметр '''конец движения'''. У него есть поля ''объект'' и ''свойство''. Объект - машина состояний ''woman_machine'', состояние ''circle_moving'' этой машины. Таким образом, в конце каждого акта движения изомувер будет запускать состояние, в котором мы будем менять его точку финиша и запускать его движение.<br />
<br>Не забываем, что все операции с переменными должны отделяться скобками, как и сама переменная<br><br><br />
<br />
[[Category:Main objects]]<br />
[[Category:Game mechanic]]</div>Iskoroboghttps://wiki.appsalutecreator.com/index.php?title=Isomover&diff=8624Isomover2017-03-16T07:50:03Z<p>Iskorobog: </p>
<hr />
<div>'''Isomover''' - [[Object|объект]] используется для осуществления движения и взаимодействия в изометрической карте. <br />
<br />
Isomover обязательно должен быть подобъектом [[isomap]]. <br />
<br />
В проекте с картой ([[isomap]]) и движущимися по ней объектами (isomover) часто используют [[economics]] и [[eitems]] потому, что для завершения процессов часто требуется применить предмет или ресурс.<br />
<br />
Начало движения множества изомуверов сильно нагружает систему, поэтому следует позаботиться, чтобы это происходило не в один момент времени. По возможности добавляйте небольшую и различную паузу каждому изомуверу перед стартом.<br><br><br />
==Основные параметры==<br />
*'''Положение''' (''x'',''y'') - рекомендуется выносить isomover-объекты за пределы карты. Иначе, если объект должен появляться не сразу, то он будет просто стоять без движения<br />
*'''Память''' - всегда должно быть значение 1, обязательное условие корректной работы. Это позволяет объекту двигаться последовательно, не инициализируясь после каждого движения в исходной точке<br />
*'''тип ребра min''' (''edge_t_min'') - перемещаться по ребрам не ниже заданного, -1 не проверять<br />
*'''тип ребра max''' (''edge_t_max'') - перемещаться по ребрам не выше заданного, -1 не проверять. Типы ребер задаются в isomap<br />
*'''Старт''' (''start'') - точка старта, выбирается из списка точек Isomap<br />
*'''Финиш''' (''finish'') - точка финиша, выбирается из списка точек Isomap<br />
*'''Скорость (макс)''' (''vel_max'') - максимальная скорость, с которой передвигается объект Isomover<br />
*'''Скорость''' (''vel'') - не использовать, вычисляется по формуле автоматически, позже будет скрыто. V = Vmax*(k+(1-k)*(P/Pmax))<br />
*'''Жизнь (макс)''' (''pow_max'') - максимальная жизнь<br />
*'''Жизнь''' (''pow'') - текущая жизнь, высчитывается по формуле автоматически<br />
*'''Сохранять жизнь в опции''' (''powsave'') - если да, то объекты сцены сохранят уровень жизни при выходе со сцены и возвращении на нее<br />
*'''Коэффициент скорости''' (''speed_k'') - коэффициент k в формуле расчета скорости. Чтобы скорость не зависела от значения жизни - указываем speed_k = 1<br />
*'''Менять угол''' (''fixangle'') - изменение угла для предания плавности смены графики при дугообразном перемещении объекта. С появлением 3D-объектов больше не используется<br />
*'''Тип''' (''mtype'') - объекты можно разделять на типы (люди, монстры, звери и т.д.). Взаимодействие происходит между объектами разных типов, настраивается в добавляемых параметрах<br />
*'''Радиус''' (''mradius'') - значения радиуса. Попадание изомувера другого типа в этот радиус позволит начать взаимодействие.<br />
*'''Цель при действии''' (''mtarget'') - мувер может быть целью взаимодействия пока сам действует<br />
*'''Запретить действие''' (''disact'') - мувер не сможет перейти из acting_wait в acting<br />
*'''Время появления''' (''appear_time'') - время в миллисекундах появления и исчезания изомувера (длительность перехода по alpha)<br />
*'''Время провала''' (''fail_time'') - длительность анимации смерти объекта, по его окончанию произойдет переход в состояние ''disappear''<br />
*'''Время паузы''' (''pause_time'') - длительность "заморозки" объекта<br />
*'''Предмет паузы''' (''pause_item'') - предмет для включения паузы<br />
*'''fail при 0 жизни''' (''zerofail'') - 1- при нулевом уровне жизни изомувер перейдет в fail, 0 - останется жив<br />
*'''Не пересчитывать маршрут''' (''softrecalc'') - 1- при отключении ребер графа не произойдет пересчета маршрута, 0 - маршрут будет пересчитан<br />
*'''Реагировать на''' (''tapreact'') - 1- на тап, 0- на клик<br />
<br><br />
<br />
==Дополнительные параметры==<br />
[[Файл:Isomover1.png|right|300px]]<br />
*'''Графический ресурс:'''<br />
**вверх (''res0'') - графический ресурс движения вверх<br />
**вверх/вправо (''res1'') - графический ресурс движения вверх/вправо<br />
**вправо (''res2'') - графический ресурс движения вправо <br />
**вниз/вправо (''res3'') - графический ресурс движения вниз/вправо<br />
**вниз (''res4'') - графический ресурс движения вниз <br />
**вниз/влево (''res5'') - графический ресурс движения вниз/влево<br />
**влево (''res6'') - графический ресурс движения влево <br />
**вверх/влево (''res7'') - графический ресурс движения вверх/влево. Достаточно указать первые пять ресурсов, а остальные редактор отобразит автоматически симметрично<br />
**деятельность (''resa'') - графический ресурс для состояния acting<br />
**иконка персонажа (''char_ico'') - иконка, которая будет находится сверху над персонажем. Изменение масштаба во время игры не влияет на масштаб иконки. Рекомендуется создавать ее с пивотом у нижней границы, тогда при масштабировании не будет образовываться зазор между иконкой и графикой объекта<br />
**смещение иконки персонажа (''char_ico_shift'') - смещение иконки по вертикали<br />
**рисовать при действии (''resad'') - 1- мувер рисуется при состоянии acting, 0- не рисуется<br />
**провал (''resf'') - графический ресурс состояния fail. Может быть картинкой или анимацией<br />
**пауза (''resp'') - графический ресурс состояния pause<br />
**восстановление жизни (''resheal'') - графический ресурс восстановления жизни<br />
*'''3D ресурс'''<br />
**модель (''mdl'') - трехмерный ресурс для отображения объекта<br />
**scale x (''mdlSx'') - масштаб по оси ''x''<br />
**scale y (''mdlSy'') - масштаб по оси ''y''<br />
**scale z (''mdlSz'') - масштаб по оси ''z''<br />
*'''Звуки'''<br />
**всплывание подложки (''snd_panel'') - звук показывающейся подложки<br />
**исчезание подложки (''snd_panel_hide'') - звук прячущейся подложки<br />
**переход в acting (''snd_to_acting'') - звук перехода в состояние acting<br />
**применение предмета (''snd_item_used'') - звук применение предмета при взаимодействии<br />
**предмет при паузе (''snd_item_pause'') - звук применение предмета при паузе<br />
**конец паузы (''snd_pause_end'') - звук при окончании паузы<br />
**фейл взаимодействия (''snd_fail'') - звук при переходе в fail<br />
**успех взаимодействия (''snd_success'') - звук при переходе в win<br />
**клик (''snd_click'') - звук при клике<br />
*'''Коэффициент скорости'''<br />
**вертикальное (''speed_0'') - на этот коэффициент умножается скорость при вертикальном движении<br />
**диагональное (''speed_1'') - на этот коэффициент умножается скорость при диагональном движении<br />
**горизонтальное (''speed_2'') - на этот коэффициент умножается скорость при горизонтальном движении<br />
Обычно горизонтальный коэффициент равен 1.00, чуть меньше диагональный и еще меньше вертикальный. Это необходимо для создания реалистичности движения относительно перспективы. То есть объекты, двигаясь вверх, как бы отдаляются от нас в глубь, поэтому по экрану они движутся медленней<br />
[[Файл:Isomover2.png|right]]<br />
*'''Таймер''':<br />
**подложка (''digBg'') - фон для цифр таймера<br />
**цифры (''digNorm'') - набор из 10-и цифр в виде ресурса анимации (клипа)<br />
**двоеточие (''colNorm'') - графический ресурс двоеточия<br />
**dx (''dx'') - смещение таймера по оси ''x'' относительно пивота изомувера<br />
**dy (''dy'') - смещение таймера по оси ''y'' относительно пивота изомувера<br />
**dx между цифрами (''digShift'') - расстояние между цифрами таймера<br />
**dx от (''colShift'') - отступы числовых разрядов влево и вправо от двоеточия<br />
**жизнь (''objlife'') - здесь выбирается объект типа прогресс_бар для отображения шкалы уровня жизни. Progress_bar создается отдельным объектом<br />
Таймер позволяет отобразить время до окончания взаимодействия объектов. Например "корабль" прибыл в "порт" и начал отгружать груз. С помощью числового таймера или progress_bar можно увидеть через сколько закончится отгрузка. На рисунке справа показано взаимодействие двух объектов с изображение шкалы жизни одного из объектов и времени до конца взаимодействия.<br />
*'''Преследование'''<br />
**тип (''chasetype'') - тип объекта, который можно преследовать<br />
**радиус (''chaseradius'') - если объект указанного типа окажется в этом радиусе, то начнется преследование (например полицейская погоня)<br />
*'''Дорожное движение'''<br />
**радиус (''stopradius'') - объекты, которые двигались по одному ребру, останавливаются на расстоянии этого радиуса (необходимо для препятствия наслоений объектов на дороге, железнодорожных путях)<br />
*'''восстановление жизни''':<br />
**критический уровень (''pow_min'') - Критический уровень жизни<br />
**предмет (''pow_item'') - Предмет восстановления <br />
**время (''pow_time'') - Время восстановления жизни<br />
<br />
*курсор (''curs'') - Графический ресурс курсора текущего и всех дочерних объектов<br />
*прокликиваемая (''passClk'') - Если 1, то картинка прозрачна для клика мышкой (пропускает объектам под ней). Если 2, то картинка сама обрабатывает клик, но и пропускает его дальше" regexp="нет=0, да=1, обработать и пропустить=2<br />
*группа (''gr'') - Группа, в которую входит текущий объект<br />
*eitems (''eitems'') - Объект типа eitems<br />
<br><br />
<br />
==Добавляемые параметры==<br />
[[Файл:Isomover9.png|right|300px]]<br />
[[Файл:+.png]] '''Взаимодействие с другими объектами''':<br />
*тип (''mtype'') - тип объекта с которым по настроенному ниже сценарию будет происходить взаимодействие, -1 для любого типа<br />
*min жизнь (''minlife'') - минимальное значение жизни для начала взаимодействия, -1 не проверять<br />
*max жизнь (''maxlife'') - минимальное значение жизни для начала взаимодействия, -1 не проверять<br />
*тип актив (''mtype_a'') - тип мувера, который активирует взаимодействие, если данный в процессе подготовки<br />
*анимация (''res_a'') - анимация взаимодействия, например боя, разгрузки, разговора. Перетаскивается мышкой из редактора ресурсов<br />
*старт тип (''stype'') - тип старта взаимодействия<br />
**0 - бесконечное ожидание тапа. Переход в состояние acting не начнется, пока не произойдет тап по объекту<br />
**1 - автоматический переход в состояние acting<br />
**2 - время, через которое произойдет переход из acting_wait в acting после начала взаимодействия объектов<br />
**3 - переход по значению жизни<br />
*старт таймер (''stimer'') - время, за которое нужно активировать взаимодействие тапом<br />
*старт изм.жизни (''slife'') - скорость изменения жизни до активации взаимодействия тапом<br />
*старт изм.жизни другого (''slife_o'') - скорость изменения жизни враг до активации взаимодействия тапом<br />
*предмет (''item'') - предмет, необходимый для запуска активности. Актуально, когда имеется объект economics<br />
*иконка (''ico'') - иконка активности<br />
*смещение иконки (''ico_shift'') - смещение иконки активности по вертикали<br />
*актив тип (''atype'') - тип старта взаимодействия<br />
**0 - бесконечное ожидание тапа. Переход в состояние acting не начнется, пока не произойдет тап по объекту<br />
**1 - автоматический переход в состояние acting<br />
**2 - время, через которое произойдет переход из acting_wait в acting после начала взаимодействия объектов<br />
**3 - переход по значению жизни<br />
*актив таймер (''atime'') - время, которое длится взаимодействие<br />
*актив изменение жизни (''alife'') - скорость изменения жизни текущего объекта (ед/сек) в состоянии active<br />
*актив изменение жизни другого (''alife_o'') - скорость изменения жизни другого объекта (ед/сек) в состоянии active<br />
<br />
[[Файл:Isomover3.png|right|300px]]<br />
*объект инит (''obj'') - объект, состояние которого нужно изменить при переходе изомувера в acting_wait<br />
*состояние инит (''st'') - новое состояние другого объекта<br />
*объект старт (''obj_s'') - объект, состояние которого нужно изменить при переходе изомувера в acting<br />
*состояние старт (''st_s'') - новое состояние другого объекта<br />
*объект фейл (''obj_f'') - объект, состояние которого нужно изменить при переходе изомувера в состояние fail (проигрыш)<br />
*состояние фейл (''st_f'') - новое состояние другого объекта<br />
*объект успех (''obj_w'') - объект, состояние которого нужно изменить при переходе изомувера в состояние win (в случае победы)<br />
*состояние успех (''st_w'') - новое состояние другого объекта<br />
*дельта жизнь (''deltalife'') при успехе взаимодействия изменить значение жизни на эту величину<br />
*переводить другой в фейл (''o_fail'') - 1- переводить цель действия в fail, 0- в idle<br />
*переводить другой в мув (''o_move'') - при неудачном действии 1- переводить цель действия в move, 0- в idle<br />
*можно ускорить (''canspeed'') - 1- действие можно ускорить. От этого параметра зависит, какое событие будет вызываться по клику на объект в состоянии acting<br />
*звук ожидания (''snd_wait'') - звук, который будет воспроизводиться в состоянии acting_wait <br />
*звук действия (''snd_act'') - звук, который будет воспроизводиться в состоянии acting<br />
Для каждого типа объектов, с которыми взаимодействие возможно, необходимо добавить отдельный параметр "взаимодействие с другими объектами" и настроить его. Объекты инит, старт, фейл и успех вызываются при переходе текущего объекта в соответствующие состояния. Например, это может быть диалоговое окно, предлагающее продолжить взаимодействие, запуск дополнительных индикаторов, фейерверк в случае победы.<br />
<br />
[[Файл:+.png]] '''Клик при простое''' (''nst_idle''):<br />
*объект - объект, состояние которого меняется, если изомувер был нажат в состоянии idel<br />
*состояние - новое состояние объекта<br />
[[Файл:+.png]] '''Изменить состояние объекта''' (''nst_move''), он же '''клик при движении''':<br />
*объект - объект, состояние которого меняется, если изомувер был нажат в состоянии move<br />
*состояние - новое состояние объекта<br />
[[Файл:+.png]] '''Клик при паузе''' (''nst_pause''):<br />
*объект - объект, состояние которого меняется, если изомувер был нажат в состоянии pause (заморозка)<br />
*состояние - новое состояние объекта<br />
[[Файл:+.png]] '''Изменить состояние объекта''' (''nst_aw_n'') он же '''клик при acting_wait, если другие действия не возможны'''<br />
*объект - объект, состояние которого меняется, если изомувер был нажат в состоянии acting_wait<br />
*состояние - новое состояние объекта<br />
[[Файл:+.png]] '''Изменить состояние объекта''' (''nst_a_1'') он же '''клик при acting, ускорение возможно'''<br />
*объект - объект, состояние которого меняется, если изомувер был нажат в состоянии acting и ускорение возможно<br />
*состояние - новое состояние объекта<br />
[[Файл:+.png]] '''Изменить состояние объекта''' (''nst_a_2'') он же '''клик при acting, ускорение НЕвозможно'''<br />
*объект - объект, состояние которого меняется, если изомувер был нажат в состоянии acting и ускорение не возможно<br />
*состояние - новое состояние объекта<br />
[[Файл:+.png]] '''Изменить состояние объекта''' (''nst_beact'') он же '''клик при beeng_acting'''<br />
*объект - объект, состояние которого меняется, если изомувер был нажат в состоянии beeng_acting, когда воздействие совершалось над ним другим объектом<br />
*состояние - новое состояние объекта<br />
[[Файл:+.png]] '''Конец движения''' (''nst_finish''):<br />
*объект - объект, состояние которого меняется, если изомувер закончил движение (достиг точки finish)<br />
*состояние - новое состояние объекта<br />
[[Файл:+.png]] '''Отправили в текущую ноду''' (''nst_place''):<br />
*объект - объект, состояние которого меняется, если изомувер направлен в ту же ноду, в которой и находится<br />
*состояние - новое состояние объекта<br />
[[Файл:+.png]] '''Перешел в fail''' (''nst_gopause''):<br />
*объект - объект, состояние которого меняется, если изомувер перешел в fail<br />
*состояние - новое состояние объекта<br />
[[Файл:+.png]] '''Перешел в pause''' (''nst_heal''):<br />
*объект - объект, состояние которого меняется, если изомувер Перешел в pause<br />
*состояние - новое состояние объекта<br />
[[Файл:+.png]] '''Восстановил здоровье''' (''nst_low_time''):<br />
*объект - объект, состояние которого меняется, если изомувер Восстановил здоровье<br />
*состояние - новое состояние объекта<br />
[[Файл:+.png]] '''Время истекло: изменить состояние объекта''' (''nst_low_time'') он же '''время на исходе: изменить состояние объекта''':<br />
*значение, при котором срабатывает обработчик<br />
*объект - объект, состояние которого меняется по истечению времени<br />
*состояние - новое состояние объекта<br />
<br><br />
<br />
==Состояния==<br />
[[Файл:isomover_box.png|right|350px]]<br />
*'''idle''' - дефолтное состояние, в которое isomover переходит после всех манипуляций. Недвижимым объектам следует передавать idle, чтобы они появились (нарисовались) на карте. Для движущихся объектов его практически не используют, объект сам рисуется с началом движения.<br><br />
*'''acting_wait''' - первое состояние взаимодействия (запускается первый таймер, анимация взаимодействия и ожидается старт).<br><br />
*'''acting''' - второе состояние взаимодействия (вызывается после применения предмета или клика, запускает второй таймер).<br><br />
*'''being_acted''' - в этом состоянии пребывает тот объект, над которым идет действие. Объект в этом состоянии невидим.<br><br />
*'''move''' - состояние движения от старта к финишу.<br><br />
*'''move_to_smooth''' - состояние движения от текущей ноды (или следующей, если объект идет) к финишу.<br><br />
*'''appear''' - показать по альфе за время появления.<br><br />
*'''disappear''' - скрыть по альфе за время появления.<br><br />
*'''prepare_acting''' - вызвать взаимодействие без оппонента. Перед вызовом нужно в поле param записать номер взаимодействия по порядку.<br><br />
*'''start_acting''' - продолжить взаимодействие без оппонента. Перед вызовом нужно в поле param записать номер взаимодействия по порядку.<br />
*'''pause''' - состояние "заморозки"<br />
<br><br />
<br />
==Особенности работы==<br />
[[Файл:Isomover6.png|right|300px]][[Файл:Isomover8.png|left|200px]]<br />
Движение объекта типа ''isomover'' задается с помощью отдельной машины состояний через которую происходит управление состояниями move, acting и остальными. Рассмотрим на конкретном примере. У нас есть объект '''woman''' типа ''isomover''. Необходимо, чтобы наш изомувер начал движение с точки b1 и дальше начал двигаться бесконечно по кольцу b2-b3-b4-b5. Движение задается машиной состояний ''woman_machine''.<br><br />
Для управления циклическим ходом назначим дополнительный параметр ''ww''. Название параметра должно быть уникально и не совпадать с параметрами игровых объектов.<br><br />
Для того, чтобы изомувер двигался каждый раз к новой точке, необходимо повторно инициализировать его точку финиша. Однако, если мы продолжим указывать ему состояние move для движения, то каждый раз он будет начинать движение с точки старта. Чтобы это исправить воспользуемся состоянием move_to_smooth, которое заставляет двигаться изомувер от текущей ноде к финишу, будто старт и финиш мы все время смещаем на шаг.<br />
<br>Основная логика будет находиться в состоянии ''circle_moving'' нашей машины. Надо сделать так, чтобы изомувер переходил в это состояние после движения по каждому из ребер. Для этого зайдем в свойства изомувера, нажмем правой кнопкой мыши и добавим параметр '''конец движения'''. У него есть поля ''объект'' и ''свойство''. Объект - машина состояний ''woman_machine'', состояние ''circle_moving'' этой машины. Таким образом, в конце каждого акта движения изомувер будет запускать состояние, в котором мы будем менять его точку финиша и запускать его движение.<br />
<br>Не забываем, что все операции с переменными должны отделяться скобками, как и сама переменная<br><br><br />
<br />
[[Category:Main objects]]<br />
[[Category:Game mechanic]]<br />
===Пример===</div>Iskoroboghttps://wiki.appsalutecreator.com/index.php?title=Isomover&diff=8623Isomover2017-03-16T07:49:22Z<p>Iskorobog: </p>
<hr />
<div>'''Isomover''' - [[Object|объект]] используется для осуществления движения и взаимодействия в изометрической карте. <br />
<br />
Isomover обязательно должен быть подобъектом [[isomap]]. <br />
<br />
В проекте с картой ([[isomap]]) и движущимися по ней объектами (isomover) часто используют [[economics]] и [[eitems]] потому, что для завершения процессов часто требуется применить предмет или ресурс.<br />
<br />
Начало движения множества изомуверов сильно нагружает систему, поэтому следует позаботиться, чтобы это происходило не в один момент времени. По возможности добавляйте небольшую и различную паузу каждому изомуверу перед стартом.<br><br><br />
==Основные параметры==<br />
*'''Положение''' (''x'',''y'') - рекомендуется выносить isomover-объекты за пределы карты. Иначе, если объект должен появляться не сразу, то он будет просто стоять без движения<br />
*'''Память''' - всегда должно быть значение 1, обязательное условие корректной работы. Это позволяет объекту двигаться последовательно, не инициализируясь после каждого движения в исходной точке<br />
*'''тип ребра min''' (''edge_t_min'') - перемещаться по ребрам не ниже заданного, -1 не проверять<br />
*'''тип ребра max''' (''edge_t_max'') - перемещаться по ребрам не выше заданного, -1 не проверять. Типы ребер задаются в isomap<br />
*'''Старт''' (''start'') - точка старта, выбирается из списка точек Isomap<br />
*'''Финиш''' (''finish'') - точка финиша, выбирается из списка точек Isomap<br />
*'''Скорость (макс)''' (''vel_max'') - максимальная скорость, с которой передвигается объект Isomover<br />
*'''Скорость''' (''vel'') - не использовать, вычисляется по формуле автоматически, позже будет скрыто. V = Vmax*(k+(1-k)*(P/Pmax))<br />
*'''Жизнь (макс)''' (''pow_max'') - максимальная жизнь<br />
*'''Жизнь''' (''pow'') - текущая жизнь, высчитывается по формуле автоматически<br />
*'''Сохранять жизнь в опции''' (''powsave'') - если да, то объекты сцены сохранят уровень жизни при выходе со сцены и возвращении на нее<br />
*'''Коэффициент скорости''' (''speed_k'') - коэффициент k в формуле расчета скорости. Чтобы скорость не зависела от значения жизни - указываем speed_k = 1<br />
*'''Менять угол''' (''fixangle'') - изменение угла для предания плавности смены графики при дугообразном перемещении объекта. С появлением 3D-объектов больше не используется<br />
*'''Тип''' (''mtype'') - объекты можно разделять на типы (люди, монстры, звери и т.д.). Взаимодействие происходит между объектами разных типов, настраивается в добавляемых параметрах<br />
*'''Радиус''' (''mradius'') - значения радиуса. Попадание изомувера другого типа в этот радиус позволит начать взаимодействие.<br />
*'''Цель при действии''' (''mtarget'') - мувер может быть целью взаимодействия пока сам действует<br />
*'''Запретить действие''' (''disact'') - мувер не сможет перейти из acting_wait в acting<br />
*'''Время появления''' (''appear_time'') - время в миллисекундах появления и исчезания изомувера (длительность перехода по alpha)<br />
*'''Время провала''' (''fail_time'') - длительность анимации смерти объекта, по его окончанию произойдет переход в состояние ''disappear''<br />
*'''Время паузы''' (''pause_time'') - длительность "заморозки" объекта<br />
*'''Предмет паузы''' (''pause_item'') - предмет для включения паузы<br />
*'''fail при 0 жизни''' (''zerofail'') - 1- при нулевом уровне жизни изомувер перейдет в fail, 0 - останется жив<br />
*'''Не пересчитывать маршрут''' (''softrecalc'') - 1- при отключении ребер графа не произойдет пересчета маршрута, 0 - маршрут будет пересчитан<br />
*'''Реагировать на''' (''tapreact'') - 1- на тап, 0- на клик<br />
<br><br />
<br />
==Дополнительные параметры==<br />
[[Файл:Isomover1.png|right|300px]]<br />
*'''Графический ресурс:'''<br />
**вверх (''res0'') - графический ресурс движения вверх<br />
**вверх/вправо (''res1'') - графический ресурс движения вверх/вправо<br />
**вправо (''res2'') - графический ресурс движения вправо <br />
**вниз/вправо (''res3'') - графический ресурс движения вниз/вправо<br />
**вниз (''res4'') - графический ресурс движения вниз <br />
**вниз/влево (''res5'') - графический ресурс движения вниз/влево<br />
**влево (''res6'') - графический ресурс движения влево <br />
**вверх/влево (''res7'') - графический ресурс движения вверх/влево. Достаточно указать первые пять ресурсов, а остальные редактор отобразит автоматически симметрично<br />
**деятельность (''resa'') - графический ресурс для состояния acting<br />
**иконка персонажа (''char_ico'') - иконка, которая будет находится сверху над персонажем. Изменение масштаба во время игры не влияет на масштаб иконки. Рекомендуется создавать ее с пивотом у нижней границы, тогда при масштабировании не будет образовываться зазор между иконкой и графикой объекта<br />
**смещение иконки персонажа (''char_ico_shift'') - смещение иконки по вертикали<br />
**рисовать при действии (''resad'') - 1- мувер рисуется при состоянии acting, 0- не рисуется<br />
**провал (''resf'') - графический ресурс состояния fail. Может быть картинкой или анимацией<br />
**пауза (''resp'') - графический ресурс состояния pause<br />
**восстановление жизни (''resheal'') - графический ресурс восстановления жизни<br />
*'''3D ресурс'''<br />
**модель (''mdl'') - трехмерный ресурс для отображения объекта<br />
**scale x (''mdlSx'') - масштаб по оси ''x''<br />
**scale y (''mdlSy'') - масштаб по оси ''y''<br />
**scale z (''mdlSz'') - масштаб по оси ''z''<br />
*'''Звуки'''<br />
**всплывание подложки (''snd_panel'') - звук показывающейся подложки<br />
**исчезание подложки (''snd_panel_hide'') - звук прячущейся подложки<br />
**переход в acting (''snd_to_acting'') - звук перехода в состояние acting<br />
**применение предмета (''snd_item_used'') - звук применение предмета при взаимодействии<br />
**предмет при паузе (''snd_item_pause'') - звук применение предмета при паузе<br />
**конец паузы (''snd_pause_end'') - звук при окончании паузы<br />
**фейл взаимодействия (''snd_fail'') - звук при переходе в fail<br />
**успех взаимодействия (''snd_success'') - звук при переходе в win<br />
**клик (''snd_click'') - звук при клике<br />
*'''Коэффициент скорости'''<br />
**вертикальное (''speed_0'') - на этот коэффициент умножается скорость при вертикальном движении<br />
**диагональное (''speed_1'') - на этот коэффициент умножается скорость при диагональном движении<br />
**горизонтальное (''speed_2'') - на этот коэффициент умножается скорость при горизонтальном движении<br />
Обычно горизонтальный коэффициент равен 1.00, чуть меньше диагональный и еще меньше вертикальный. Это необходимо для создания реалистичности движения относительно перспективы. То есть объекты, двигаясь вверх, как бы отдаляются от нас в глубь, поэтому по экрану они движутся медленней<br />
[[Файл:Isomover2.png|right]]<br />
*'''Таймер''':<br />
**подложка (''digBg'') - фон для цифр таймера<br />
**цифры (''digNorm'') - набор из 10-и цифр в виде ресурса анимации (клипа)<br />
**двоеточие (''colNorm'') - графический ресурс двоеточия<br />
**dx (''dx'') - смещение таймера по оси ''x'' относительно пивота изомувера<br />
**dy (''dy'') - смещение таймера по оси ''y'' относительно пивота изомувера<br />
**dx между цифрами (''digShift'') - расстояние между цифрами таймера<br />
**dx от (''colShift'') - отступы числовых разрядов влево и вправо от двоеточия<br />
**жизнь (''objlife'') - здесь выбирается объект типа прогресс_бар для отображения шкалы уровня жизни. Progress_bar создается отдельным объектом<br />
Таймер позволяет отобразить время до окончания взаимодействия объектов. Например "корабль" прибыл в "порт" и начал отгружать груз. С помощью числового таймера или progress_bar можно увидеть через сколько закончится отгрузка. На рисунке справа показано взаимодействие двух объектов с изображение шкалы жизни одного из объектов и времени до конца взаимодействия.<br />
*'''Преследование'''<br />
**тип (''chasetype'') - тип объекта, который можно преследовать<br />
**радиус (''chaseradius'') - если объект указанного типа окажется в этом радиусе, то начнется преследование (например полицейская погоня)<br />
*'''Дорожное движение'''<br />
**радиус (''stopradius'') - объекты, которые двигались по одному ребру, останавливаются на расстоянии этого радиуса (необходимо для препятствия наслоений объектов на дороге, железнодорожных путях)<br />
*'''восстановление жизни''':<br />
**критический уровень (''pow_min'') - Критический уровень жизни<br />
**предмет (''pow_item'') - Предмет восстановления <br />
**время (''pow_time'') - Время восстановления жизни<br />
<br />
*курсор (''curs'') - Графический ресурс курсора текущего и всех дочерних объектов<br />
*прокликиваемая (''passClk'') - Если 1, то картинка прозрачна для клика мышкой (пропускает объектам под ней). Если 2, то картинка сама обрабатывает клик, но и пропускает его дальше" regexp="нет=0, да=1, обработать и пропустить=2<br />
*группа (''gr'') - Группа, в которую входит текущий объект<br />
*eitems (''eitems'') - Объект типа eitems<br />
<br><br />
<br />
==Добавляемые параметры==<br />
[[Файл:Isomover9.png|right|300px]]<br />
[[Файл:+.png]] '''Взаимодействие с другими объектами''':<br />
*тип (''mtype'') - тип объекта с которым по настроенному ниже сценарию будет происходить взаимодействие, -1 для любого типа<br />
*min жизнь (''minlife'') - минимальное значение жизни для начала взаимодействия, -1 не проверять<br />
*max жизнь (''maxlife'') - минимальное значение жизни для начала взаимодействия, -1 не проверять<br />
*тип актив (''mtype_a'') - тип мувера, который активирует взаимодействие, если данный в процессе подготовки<br />
*анимация (''res_a'') - анимация взаимодействия, например боя, разгрузки, разговора. Перетаскивается мышкой из редактора ресурсов<br />
*старт тип (''stype'') - тип старта взаимодействия<br />
**0 - бесконечное ожидание тапа. Переход в состояние acting не начнется, пока не произойдет тап по объекту<br />
**1 - автоматический переход в состояние acting<br />
**2 - время, через которое произойдет переход из acting_wait в acting после начала взаимодействия объектов<br />
**3 - переход по значению жизни<br />
*старт таймер (''stimer'') - время, за которое нужно активировать взаимодействие тапом<br />
*старт изм.жизни (''slife'') - скорость изменения жизни до активации взаимодействия тапом<br />
*старт изм.жизни другого (''slife_o'') - скорость изменения жизни враг до активации взаимодействия тапом<br />
*предмет (''item'') - предмет, необходимый для запуска активности. Актуально, когда имеется объект economics<br />
*иконка (''ico'') - иконка активности<br />
*смещение иконки (''ico_shift'') - смещение иконки активности по вертикали<br />
*актив тип (''atype'') - тип старта взаимодействия<br />
**0 - бесконечное ожидание тапа. Переход в состояние acting не начнется, пока не произойдет тап по объекту<br />
**1 - автоматический переход в состояние acting<br />
**2 - время, через которое произойдет переход из acting_wait в acting после начала взаимодействия объектов<br />
**3 - переход по значению жизни<br />
*актив таймер (''atime'') - время, которое длится взаимодействие<br />
*актив изменение жизни (''alife'') - скорость изменения жизни текущего объекта (ед/сек) в состоянии active<br />
*актив изменение жизни другого (''alife_o'') - скорость изменения жизни другого объекта (ед/сек) в состоянии active<br />
<br />
[[Файл:Isomover3.png|right|300px]]<br />
*объект инит (''obj'') - объект, состояние которого нужно изменить при переходе изомувера в acting_wait<br />
*состояние инит (''st'') - новое состояние другого объекта<br />
*объект старт (''obj_s'') - объект, состояние которого нужно изменить при переходе изомувера в acting<br />
*состояние старт (''st_s'') - новое состояние другого объекта<br />
*объект фейл (''obj_f'') - объект, состояние которого нужно изменить при переходе изомувера в состояние fail (проигрыш)<br />
*состояние фейл (''st_f'') - новое состояние другого объекта<br />
*объект успех (''obj_w'') - объект, состояние которого нужно изменить при переходе изомувера в состояние win (в случае победы)<br />
*состояние успех (''st_w'') - новое состояние другого объекта<br />
*дельта жизнь (''deltalife'') при успехе взаимодействия изменить значение жизни на эту величину<br />
*переводить другой в фейл (''o_fail'') - 1- переводить цель действия в fail, 0- в idle<br />
*переводить другой в мув (''o_move'') - при неудачном действии 1- переводить цель действия в move, 0- в idle<br />
*можно ускорить (''canspeed'') - 1- действие можно ускорить. От этого параметра зависит, какое событие будет вызываться по клику на объект в состоянии acting<br />
*звук ожидания (''snd_wait'') - звук, который будет воспроизводиться в состоянии acting_wait <br />
*звук действия (''snd_act'') - звук, который будет воспроизводиться в состоянии acting<br />
Для каждого типа объектов, с которыми взаимодействие возможно, необходимо добавить отдельный параметр "взаимодействие с другими объектами" и настроить его. Объекты инит, старт, фейл и успех вызываются при переходе текущего объекта в соответствующие состояния. Например, это может быть диалоговое окно, предлагающее продолжить взаимодействие, запуск дополнительных индикаторов, фейерверк в случае победы.<br />
<br />
[[Файл:+.png]] '''Клик при простое''' (''nst_idle''):<br />
*объект - объект, состояние которого меняется, если изомувер был нажат в состоянии idel<br />
*состояние - новое состояние объекта<br />
[[Файл:+.png]] '''Изменить состояние объекта''' (''nst_move''), он же '''клик при движении''':<br />
*объект - объект, состояние которого меняется, если изомувер был нажат в состоянии move<br />
*состояние - новое состояние объекта<br />
[[Файл:+.png]] '''Клик при паузе''' (''nst_pause''):<br />
*объект - объект, состояние которого меняется, если изомувер был нажат в состоянии pause (заморозка)<br />
*состояние - новое состояние объекта<br />
[[Файл:+.png]] '''Изменить состояние объекта''' (''nst_aw_n'') он же '''клик при acting_wait, если другие действия не возможны'''<br />
*объект - объект, состояние которого меняется, если изомувер был нажат в состоянии acting_wait<br />
*состояние - новое состояние объекта<br />
[[Файл:+.png]] '''Изменить состояние объекта''' (''nst_a_1'') он же '''клик при acting, ускорение возможно'''<br />
*объект - объект, состояние которого меняется, если изомувер был нажат в состоянии acting и ускорение возможно<br />
*состояние - новое состояние объекта<br />
[[Файл:+.png]] '''Изменить состояние объекта''' (''nst_a_2'') он же '''клик при acting, ускорение НЕвозможно'''<br />
*объект - объект, состояние которого меняется, если изомувер был нажат в состоянии acting и ускорение не возможно<br />
*состояние - новое состояние объекта<br />
[[Файл:+.png]] '''Изменить состояние объекта''' (''nst_beact'') он же '''клик при beeng_acting'''<br />
*объект - объект, состояние которого меняется, если изомувер был нажат в состоянии beeng_acting, когда воздействие совершалось над ним другим объектом<br />
*состояние - новое состояние объекта<br />
[[Файл:+.png]] '''Конец движения''' (''nst_finish''):<br />
*объект - объект, состояние которого меняется, если изомувер закончил движение (достиг точки finish)<br />
*состояние - новое состояние объекта<br />
[[Файл:+.png]] '''Отправили в текущую ноду''' (''nst_place''):<br />
*объект - объект, состояние которого меняется, если изомувер направлен в ту же ноду, в которой и находится<br />
*состояние - новое состояние объекта<br />
[[Файл:+.png]] '''Перешел в fail''' (''nst_gopause''):<br />
*объект - объект, состояние которого меняется, если изомувер перешел в fail<br />
*состояние - новое состояние объекта<br />
[[Файл:+.png]] '''Перешел в pause''' (''nst_heal''):<br />
*объект - объект, состояние которого меняется, если изомувер Перешел в pause<br />
*состояние - новое состояние объекта<br />
[[Файл:+.png]] '''Восстановил здоровье''' (''nst_low_time''):<br />
*объект - объект, состояние которого меняется, если изомувер Восстановил здоровье<br />
*состояние - новое состояние объекта<br />
[[Файл:+.png]] '''Время истекло: изменить состояние объекта''' (''nst_low_time'') он же '''время на исходе: изменить состояние объекта''':<br />
*значение, при котором срабатывает обработчик<br />
*объект - объект, состояние которого меняется по истечению времени<br />
*состояние - новое состояние объекта<br />
<br><br />
<br />
==Состояния==<br />
[[Файл:isomover_box.png|right|350px]]<br />
*'''idle''' - дефолтное состояние, в которое isomover переходит после всех манипуляций. Недвижимым объектам следует передавать idle, чтобы они появились (нарисовались) на карте. Для движущихся объектов его практически не используют, объект сам рисуется с началом движения.<br><br />
*'''acting_wait''' - первое состояние взаимодействия (запускается первый таймер, анимация взаимодействия и ожидается старт).<br><br />
*'''acting''' - второе состояние взаимодействия (вызывается после применения предмета или клика, запускает второй таймер).<br><br />
*'''being_acted''' - в этом состоянии пребывает тот объект, над которым идет действие. Объект в этом состоянии невидим.<br><br />
*'''move''' - состояние движения от старта к финишу.<br><br />
*'''move_to_smooth''' - состояние движения от текущей ноды (или следующей, если объект идет) к финишу.<br><br />
*'''appear''' - показать по альфе за время появления.<br><br />
*'''disappear''' - скрыть по альфе за время появления.<br><br />
*'''prepare_acting''' - вызвать взаимодействие без оппонента. Перед вызовом нужно в поле param записать номер взаимодействия по порядку.<br><br />
*'''start_acting''' - продолжить взаимодействие без оппонента. Перед вызовом нужно в поле param записать номер взаимодействия по порядку.<br />
*'''pause''' - состояние "заморозки"<br />
<br><br />
<br />
==Особенности работы==<br />
[[Файл:Isomover6.png|right|300px]][[Файл:Isomover8.png|left|200px]]<br />
Движение объекта типа ''isomover'' задается с помощью отдельной машины состояний через которую происходит управление состояниями move, acting и остальными. Рассмотрим на конкретном примере. У нас есть объект '''woman''' типа ''isomover''. Необходимо, чтобы наш изомувер начал движение с точки b1 и дальше начал двигаться бесконечно по кольцу b2-b3-b4-b5. Движение задается машиной состояний ''woman_machine''.<br><br />
Для управления циклическим ходом назначим дополнительный параметр ''ww''. Название параметра должно быть уникально и не совпадать с параметрами игровых объектов.<br><br />
Для того, чтобы изомувер двигался каждый раз к новой точке, необходимо повторно инициализировать его точку финиша. Однако, если мы продолжим указывать ему состояние move для движения, то каждый раз он будет начинать движение с точки старта. Чтобы это исправить воспользуемся состоянием move_to_smooth, которое заставляет двигаться изомувер от текущей ноде к финишу, будто старт и финиш мы все время смещаем на шаг.<br />
<br>Основная логика будет находиться в состоянии ''circle_moving'' нашей машины. Надо сделать так, чтобы изомувер переходил в это состояние после движения по каждому из ребер. Для этого зайдем в свойства изомувера, нажмем правой кнопкой мыши и добавим параметр '''конец движения'''. У него есть поля ''объект'' и ''свойство''. Объект - машина состояний ''woman_machine'', состояние ''circle_moving'' этой машины. Таким образом, в конце каждого акта движения изомувер будет запускать состояние, в котором мы будем менять его точку финиша и запускать его движение.<br />
<br>Не забываем, что все операции с переменными должны отделяться скобками, как и сама переменная<br><br><br />
<br />
===Пример===<br />
[[Category:Main objects]]<br />
[[Category:Game mechanic]]</div>Iskoroboghttps://wiki.appsalutecreator.com/index.php?title=Isomover&diff=8622Isomover2017-03-16T07:41:39Z<p>Iskorobog: /* Добавляемые параметры */</p>
<hr />
<div>'''Isomover''' - [[Object|объект]] используется для осуществления движения и взаимодействия в изометрической карте. <br />
<br />
Isomover обязательно должен быть подобъектом [[isomap]]. <br />
<br />
В проекте с картой ([[isomap]]) и движущимися по ней объектами (isomover) часто используют [[economics]] и [[eitems]] потому, что для завершения процессов часто требуется применить предмет или ресурс.<br />
<br />
Начало движения множества изомуверов сильно нагружает систему, поэтому следует позаботиться, чтобы это происходило не в один момент времени. По возможности добавляйте небольшую и различную паузу каждому изомуверу перед стартом.<br><br><br />
==Основные параметры==<br />
*'''Положение''' (''x'',''y'') - рекомендуется выносить isomover-объекты за пределы карты. Иначе, если объект должен появляться не сразу, то он будет просто стоять без движения<br />
*'''Память''' - всегда должно быть значение 1, обязательное условие корректной работы. Это позволяет объекту двигаться последовательно, не инициализируясь после каждого движения в исходной точке<br />
*'''тип ребра min''' (''edge_t_min'') - перемещаться по ребрам не ниже заданного, -1 не проверять<br />
*'''тип ребра max''' (''edge_t_max'') - перемещаться по ребрам не выше заданного, -1 не проверять. Типы ребер задаются в isomap<br />
*'''Старт''' (''start'') - точка старта, выбирается из списка точек Isomap<br />
*'''Финиш''' (''finish'') - точка финиша, выбирается из списка точек Isomap<br />
*'''Скорость (макс)''' (''vel_max'') - максимальная скорость, с которой передвигается объект Isomover<br />
*'''Скорость''' (''vel'') - не использовать, вычисляется по формуле автоматически, позже будет скрыто. V = Vmax*(k+(1-k)*(P/Pmax))<br />
*'''Жизнь (макс)''' (''pow_max'') - максимальная жизнь<br />
*'''Жизнь''' (''pow'') - текущая жизнь, высчитывается по формуле автоматически<br />
*'''Сохранять жизнь в опции''' (''powsave'') - если да, то объекты сцены сохранят уровень жизни при выходе со сцены и возвращении на нее<br />
*'''Коэффициент скорости''' (''speed_k'') - коэффициент k в формуле расчета скорости. Чтобы скорость не зависела от значения жизни - указываем speed_k = 1<br />
*'''Менять угол''' (''fixangle'') - изменение угла для предания плавности смены графики при дугообразном перемещении объекта. С появлением 3D-объектов больше не используется<br />
*'''Тип''' (''mtype'') - объекты можно разделять на типы (люди, монстры, звери и т.д.). Взаимодействие происходит между объектами разных типов, настраивается в добавляемых параметрах<br />
*'''Радиус''' (''mradius'') - значения радиуса. Попадание изомувера другого типа в этот радиус позволит начать взаимодействие.<br />
*'''Цель при действии''' (''mtarget'') - мувер может быть целью взаимодействия пока сам действует<br />
*'''Запретить действие''' (''disact'') - мувер не сможет перейти из acting_wait в acting<br />
*'''Время появления''' (''appear_time'') - время в миллисекундах появления и исчезания изомувера (длительность перехода по alpha)<br />
*'''Время провала''' (''fail_time'') - длительность анимации смерти объекта, по его окончанию произойдет переход в состояние ''disappear''<br />
*'''Время паузы''' (''pause_time'') - длительность "заморозки" объекта<br />
*'''Предмет паузы''' (''pause_item'') - предмет для включения паузы<br />
*'''fail при 0 жизни''' (''zerofail'') - 1- при нулевом уровне жизни изомувер перейдет в fail, 0 - останется жив<br />
*'''Не пересчитывать маршрут''' (''softrecalc'') - 1- при отключении ребер графа не произойдет пересчета маршрута, 0 - маршрут будет пересчитан<br />
*'''Реагировать на''' (''tapreact'') - 1- на тап, 0- на клик<br />
<br><br />
<br />
==Дополнительные параметры==<br />
[[Файл:Isomover1.png|right|300px]]<br />
*'''Графический ресурс:'''<br />
**вверх (''res0'') - графический ресурс движения вверх<br />
**вверх/вправо (''res1'') - графический ресурс движения вверх/вправо<br />
**вправо (''res2'') - графический ресурс движения вправо <br />
**вниз/вправо (''res3'') - графический ресурс движения вниз/вправо<br />
**вниз (''res4'') - графический ресурс движения вниз <br />
**вниз/влево (''res5'') - графический ресурс движения вниз/влево<br />
**влево (''res6'') - графический ресурс движения влево <br />
**вверх/влево (''res7'') - графический ресурс движения вверх/влево. Достаточно указать первые пять ресурсов, а остальные редактор отобразит автоматически симметрично<br />
**деятельность (''resa'') - графический ресурс для состояния acting<br />
**иконка персонажа (''char_ico'') - иконка, которая будет находится сверху над персонажем. Изменение масштаба во время игры не влияет на масштаб иконки. Рекомендуется создавать ее с пивотом у нижней границы, тогда при масштабировании не будет образовываться зазор между иконкой и графикой объекта<br />
**смещение иконки персонажа (''char_ico_shift'') - смещение иконки по вертикали<br />
**рисовать при действии (''resad'') - 1- мувер рисуется при состоянии acting, 0- не рисуется<br />
**провал (''resf'') - графический ресурс состояния fail. Может быть картинкой или анимацией<br />
**пауза (''resp'') - графический ресурс состояния pause<br />
**восстановление жизни (''resheal'') - графический ресурс восстановления жизни<br />
*'''3D ресурс'''<br />
**модель (''mdl'') - трехмерный ресурс для отображения объекта<br />
**scale x (''mdlSx'') - масштаб по оси ''x''<br />
**scale y (''mdlSy'') - масштаб по оси ''y''<br />
**scale z (''mdlSz'') - масштаб по оси ''z''<br />
*'''Звуки'''<br />
**всплывание подложки (''snd_panel'') - звук показывающейся подложки<br />
**исчезание подложки (''snd_panel_hide'') - звук прячущейся подложки<br />
**переход в acting (''snd_to_acting'') - звук перехода в состояние acting<br />
**применение предмета (''snd_item_used'') - звук применение предмета при взаимодействии<br />
**предмет при паузе (''snd_item_pause'') - звук применение предмета при паузе<br />
**конец паузы (''snd_pause_end'') - звук при окончании паузы<br />
**фейл взаимодействия (''snd_fail'') - звук при переходе в fail<br />
**успех взаимодействия (''snd_success'') - звук при переходе в win<br />
**клик (''snd_click'') - звук при клике<br />
*'''Коэффициент скорости'''<br />
**вертикальное (''speed_0'') - на этот коэффициент умножается скорость при вертикальном движении<br />
**диагональное (''speed_1'') - на этот коэффициент умножается скорость при диагональном движении<br />
**горизонтальное (''speed_2'') - на этот коэффициент умножается скорость при горизонтальном движении<br />
Обычно горизонтальный коэффициент равен 1.00, чуть меньше диагональный и еще меньше вертикальный. Это необходимо для создания реалистичности движения относительно перспективы. То есть объекты, двигаясь вверх, как бы отдаляются от нас в глубь, поэтому по экрану они движутся медленней<br />
[[Файл:Isomover2.png|right]]<br />
*'''Таймер''':<br />
**подложка (''digBg'') - фон для цифр таймера<br />
**цифры (''digNorm'') - набор из 10-и цифр в виде ресурса анимации (клипа)<br />
**двоеточие (''colNorm'') - графический ресурс двоеточия<br />
**dx (''dx'') - смещение таймера по оси ''x'' относительно пивота изомувера<br />
**dy (''dy'') - смещение таймера по оси ''y'' относительно пивота изомувера<br />
**dx между цифрами (''digShift'') - расстояние между цифрами таймера<br />
**dx от (''colShift'') - отступы числовых разрядов влево и вправо от двоеточия<br />
**жизнь (''objlife'') - здесь выбирается объект типа прогресс_бар для отображения шкалы уровня жизни. Progress_bar создается отдельным объектом<br />
Таймер позволяет отобразить время до окончания взаимодействия объектов. Например "корабль" прибыл в "порт" и начал отгружать груз. С помощью числового таймера или progress_bar можно увидеть через сколько закончится отгрузка. На рисунке справа показано взаимодействие двух объектов с изображение шкалы жизни одного из объектов и времени до конца взаимодействия.<br />
*'''Преследование'''<br />
**тип (''chasetype'') - тип объекта, который можно преследовать<br />
**радиус (''chaseradius'') - если объект указанного типа окажется в этом радиусе, то начнется преследование (например полицейская погоня)<br />
*'''Дорожное движение'''<br />
**радиус (''stopradius'') - объекты, которые двигались по одному ребру, останавливаются на расстоянии этого радиуса (необходимо для препятствия наслоений объектов на дороге, железнодорожных путях)<br />
*'''восстановление жизни''':<br />
**критический уровень (''pow_min'') - Критический уровень жизни<br />
**предмет (''pow_item'') - Предмет восстановления <br />
**время (''pow_time'') - Время восстановления жизни<br />
<br />
*курсор (''curs'') - Графический ресурс курсора текущего и всех дочерних объектов<br />
*прокликиваемая (''passClk'') - Если 1, то картинка прозрачна для клика мышкой (пропускает объектам под ней). Если 2, то картинка сама обрабатывает клик, но и пропускает его дальше" regexp="нет=0, да=1, обработать и пропустить=2<br />
*группа (''gr'') - Группа, в которую входит текущий объект<br />
*eitems (''eitems'') - Объект типа eitems<br />
<br><br />
<br />
==Добавляемые параметры==<br />
[[Файл:Isomover9.png|right|300px]]<br />
[[Файл:+.png]] '''Взаимодействие с другими объектами''':<br />
*тип (''mtype'') - тип объекта с которым по настроенному ниже сценарию будет происходить взаимодействие, -1 для любого типа<br />
*min жизнь (''minlife'') - минимальное значение жизни для начала взаимодействия, -1 не проверять<br />
*max жизнь (''maxlife'') - минимальное значение жизни для начала взаимодействия, -1 не проверять<br />
*тип актив (''mtype_a'') - тип мувера, который активирует взаимодействие, если данный в процессе подготовки<br />
*анимация (''res_a'') - анимация взаимодействия, например боя, разгрузки, разговора. Перетаскивается мышкой из редактора ресурсов<br />
*старт тип (''stype'') - тип старта взаимодействия<br />
**0 - бесконечное ожидание тапа. Переход в состояние acting не начнется, пока не произойдет тап по объекту<br />
**1 - автоматический переход в состояние acting<br />
**2 - время, через которое произойдет переход из acting_wait в acting после начала взаимодействия объектов<br />
**3 - переход по значению жизни<br />
*старт таймер (''stimer'') - время, за которое нужно активировать взаимодействие тапом<br />
*старт изм.жизни (''slife'') - скорость изменения жизни до активации взаимодействия тапом<br />
*старт изм.жизни другого (''slife_o'') - скорость изменения жизни враг до активации взаимодействия тапом<br />
*предмет (''item'') - предмет, необходимый для запуска активности. Актуально, когда имеется объект economics<br />
*иконка (''ico'') - иконка активности<br />
*смещение иконки (''ico_shift'') - смещение иконки активности по вертикали<br />
*актив тип (''atype'') - тип старта взаимодействия<br />
**0 - бесконечное ожидание тапа. Переход в состояние acting не начнется, пока не произойдет тап по объекту<br />
**1 - автоматический переход в состояние acting<br />
**2 - время, через которое произойдет переход из acting_wait в acting после начала взаимодействия объектов<br />
**3 - переход по значению жизни<br />
*актив таймер (''atime'') - время, которое длится взаимодействие<br />
*актив изменение жизни (''alife'') - скорость изменения жизни текущего объекта (ед/сек) в состоянии active<br />
*актив изменение жизни другого (''alife_o'') - скорость изменения жизни другого объекта (ед/сек) в состоянии active<br />
<br />
[[Файл:Isomover3.png|right|300px]]<br />
*объект инит (''obj'') - объект, состояние которого нужно изменить при переходе изомувера в acting_wait<br />
*состояние инит (''st'') - новое состояние другого объекта<br />
*объект старт (''obj_s'') - объект, состояние которого нужно изменить при переходе изомувера в acting<br />
*состояние старт (''st_s'') - новое состояние другого объекта<br />
*объект фейл (''obj_f'') - объект, состояние которого нужно изменить при переходе изомувера в состояние fail (проигрыш)<br />
*состояние фейл (''st_f'') - новое состояние другого объекта<br />
*объект успех (''obj_w'') - объект, состояние которого нужно изменить при переходе изомувера в состояние win (в случае победы)<br />
*состояние успех (''st_w'') - новое состояние другого объекта<br />
*дельта жизнь (''deltalife'') при успехе взаимодействия изменить значение жизни на эту величину<br />
*переводить другой в фейл (''o_fail'') - 1- переводить цель действия в fail, 0- в idle<br />
*переводить другой в мув (''o_move'') - при неудачном действии 1- переводить цель действия в move, 0- в idle<br />
*можно ускорить (''canspeed'') - 1- действие можно ускорить. От этого параметра зависит, какое событие будет вызываться по клику на объект в состоянии acting<br />
*звук ожидания (''snd_wait'') - звук, который будет воспроизводиться в состоянии acting_wait <br />
*звук действия (''snd_act'') - звук, который будет воспроизводиться в состоянии acting<br />
Для каждого типа объектов, с которыми взаимодействие возможно, необходимо добавить отдельный параметр "взаимодействие с другими объектами" и настроить его. Объекты инит, старт, фейл и успех вызываются при переходе текущего объекта в соответствующие состояния. Например, это может быть диалоговое окно, предлагающее продолжить взаимодействие, запуск дополнительных индикаторов, фейерверк в случае победы.<br />
<br />
[[Файл:+.png]] '''Клик при простое''' (''nst_idle''):<br />
*объект - объект, состояние которого меняется, если изомувер был нажат в состоянии idel<br />
*состояние - новое состояние объекта<br />
[[Файл:+.png]] '''Изменить состояние объекта''' (''nst_move''), он же '''клик при движении''':<br />
*объект - объект, состояние которого меняется, если изомувер был нажат в состоянии move<br />
*состояние - новое состояние объекта<br />
[[Файл:+.png]] '''Клик при паузе''' (''nst_pause''):<br />
*объект - объект, состояние которого меняется, если изомувер был нажат в состоянии pause (заморозка)<br />
*состояние - новое состояние объекта<br />
[[Файл:+.png]] '''Изменить состояние объекта''' (''nst_aw_n'') он же '''клик при acting_wait, если другие действия не возможны'''<br />
*объект - объект, состояние которого меняется, если изомувер был нажат в состоянии acting_wait<br />
*состояние - новое состояние объекта<br />
[[Файл:+.png]] '''Изменить состояние объекта''' (''nst_a_1'') он же '''клик при acting, ускорение возможно'''<br />
*объект - объект, состояние которого меняется, если изомувер был нажат в состоянии acting и ускорение возможно<br />
*состояние - новое состояние объекта<br />
[[Файл:+.png]] '''Изменить состояние объекта''' (''nst_a_2'') он же '''клик при acting, ускорение НЕвозможно'''<br />
*объект - объект, состояние которого меняется, если изомувер был нажат в состоянии acting и ускорение не возможно<br />
*состояние - новое состояние объекта<br />
[[Файл:+.png]] '''Изменить состояние объекта''' (''nst_beact'') он же '''клик при beeng_acting'''<br />
*объект - объект, состояние которого меняется, если изомувер был нажат в состоянии beeng_acting, когда воздействие совершалось над ним другим объектом<br />
*состояние - новое состояние объекта<br />
[[Файл:+.png]] '''Конец движения''' (''nst_finish''):<br />
*объект - объект, состояние которого меняется, если изомувер закончил движение (достиг точки finish)<br />
*состояние - новое состояние объекта<br />
[[Файл:+.png]] '''Отправили в текущую ноду''' (''nst_place''):<br />
*объект - объект, состояние которого меняется, если изомувер направлен в ту же ноду, в которой и находится<br />
*состояние - новое состояние объекта<br />
[[Файл:+.png]] '''Перешел в fail''' (''nst_gopause''):<br />
*объект - объект, состояние которого меняется, если изомувер перешел в fail<br />
*состояние - новое состояние объекта<br />
[[Файл:+.png]] '''Перешел в pause''' (''nst_heal''):<br />
*объект - объект, состояние которого меняется, если изомувер Перешел в pause<br />
*состояние - новое состояние объекта<br />
[[Файл:+.png]] '''Восстановил здоровье''' (''nst_low_time''):<br />
*объект - объект, состояние которого меняется, если изомувер Восстановил здоровье<br />
*состояние - новое состояние объекта<br />
[[Файл:+.png]] '''Время истекло: изменить состояние объекта''' (''nst_low_time'') он же '''время на исходе: изменить состояние объекта''':<br />
*значение, при котором срабатывает обработчик<br />
*объект - объект, состояние которого меняется по истечению времени<br />
*состояние - новое состояние объекта<br />
<br><br />
<br />
==Состояния==<br />
[[Файл:isomover_box.png|right|350px]]<br />
*'''idle''' - дефолтное состояние, в которое isomover переходит после всех манипуляций. Недвижимым объектам следует передавать idle, чтобы они появились (нарисовались) на карте. Для движущихся объектов его практически не используют, объект сам рисуется с началом движения.<br><br />
*'''acting_wait''' - первое состояние взаимодействия (запускается первый таймер, анимация взаимодействия и ожидается старт).<br><br />
*'''acting''' - второе состояние взаимодействия (вызывается после применения предмета или клика, запускает второй таймер).<br><br />
*'''being_acted''' - в этом состоянии пребывает тот объект, над которым идет действие. Объект в этом состоянии невидим.<br><br />
*'''move''' - состояние движения от старта к финишу.<br><br />
*'''move_to_smooth''' - состояние движения от текущей ноды (или следующей, если объект идет) к финишу.<br><br />
*'''appear''' - показать по альфе за время появления.<br><br />
*'''disappear''' - скрыть по альфе за время появления.<br><br />
*'''prepare_acting''' - вызвать взаимодействие без оппонента. Перед вызовом нужно в поле param записать номер взаимодействия по порядку.<br><br />
*'''start_acting''' - продолжить взаимодействие без оппонента. Перед вызовом нужно в поле param записать номер взаимодействия по порядку.<br />
*'''pause''' - состояние "заморозки"<br />
<br><br />
<br />
==Особенности работы==<br />
[[Файл:Isomover6.png|right|300px]][[Файл:Isomover8.png|left|200px]]<br />
Движение объекта типа ''isomover'' задается с помощью отдельной машины состояний через которую происходит управление состояниями move, acting и остальными. Рассмотрим на конкретном примере. У нас есть объект '''woman''' типа ''isomover''. Необходимо, чтобы наш изомувер начал движение с точки b1 и дальше начал двигаться бесконечно по кольцу b2-b3-b4-b5. Движение задается машиной состояний ''woman_machine''.<br><br />
Для управления циклическим ходом назначим дополнительный параметр ''ww''. Название параметра должно быть уникально и не совпадать с параметрами игровых объектов.<br><br />
Для того, чтобы изомувер двигался каждый раз к новой точке, необходимо повторно инициализировать его точку финиша. Однако, если мы продолжим указывать ему состояние move для движения, то каждый раз он будет начинать движение с точки старта. Чтобы это исправить воспользуемся состоянием move_to_smooth, которое заставляет двигаться изомувер от текущей ноде к финишу, будто старт и финиш мы все время смещаем на шаг.<br />
<br>Основная логика будет находиться в состоянии ''circle_moving'' нашей машины. Надо сделать так, чтобы изомувер переходил в это состояние после движения по каждому из ребер. Для этого зайдем в свойства изомувера, нажмем правой кнопкой мыши и добавим параметр '''конец движения'''. У него есть поля ''объект'' и ''свойство''. Объект - машина состояний ''woman_machine'', состояние ''circle_moving'' этой машины. Таким образом, в конце каждого акта движения изомувер будет запускать состояние, в котором мы будем менять его точку финиша и запускать его движение.<br />
<br>Не забываем, что все операции с переменными должны отделяться скобками, как и сама переменная<br><br><br />
<br />
[[Category:Main objects]]<br />
[[Category:Game mechanic]]</div>Iskoroboghttps://wiki.appsalutecreator.com/index.php?title=Isomover&diff=8621Isomover2017-03-16T07:34:27Z<p>Iskorobog: /* Дополнительные параметры */</p>
<hr />
<div>'''Isomover''' - [[Object|объект]] используется для осуществления движения и взаимодействия в изометрической карте. <br />
<br />
Isomover обязательно должен быть подобъектом [[isomap]]. <br />
<br />
В проекте с картой ([[isomap]]) и движущимися по ней объектами (isomover) часто используют [[economics]] и [[eitems]] потому, что для завершения процессов часто требуется применить предмет или ресурс.<br />
<br />
Начало движения множества изомуверов сильно нагружает систему, поэтому следует позаботиться, чтобы это происходило не в один момент времени. По возможности добавляйте небольшую и различную паузу каждому изомуверу перед стартом.<br><br><br />
==Основные параметры==<br />
*'''Положение''' (''x'',''y'') - рекомендуется выносить isomover-объекты за пределы карты. Иначе, если объект должен появляться не сразу, то он будет просто стоять без движения<br />
*'''Память''' - всегда должно быть значение 1, обязательное условие корректной работы. Это позволяет объекту двигаться последовательно, не инициализируясь после каждого движения в исходной точке<br />
*'''тип ребра min''' (''edge_t_min'') - перемещаться по ребрам не ниже заданного, -1 не проверять<br />
*'''тип ребра max''' (''edge_t_max'') - перемещаться по ребрам не выше заданного, -1 не проверять. Типы ребер задаются в isomap<br />
*'''Старт''' (''start'') - точка старта, выбирается из списка точек Isomap<br />
*'''Финиш''' (''finish'') - точка финиша, выбирается из списка точек Isomap<br />
*'''Скорость (макс)''' (''vel_max'') - максимальная скорость, с которой передвигается объект Isomover<br />
*'''Скорость''' (''vel'') - не использовать, вычисляется по формуле автоматически, позже будет скрыто. V = Vmax*(k+(1-k)*(P/Pmax))<br />
*'''Жизнь (макс)''' (''pow_max'') - максимальная жизнь<br />
*'''Жизнь''' (''pow'') - текущая жизнь, высчитывается по формуле автоматически<br />
*'''Сохранять жизнь в опции''' (''powsave'') - если да, то объекты сцены сохранят уровень жизни при выходе со сцены и возвращении на нее<br />
*'''Коэффициент скорости''' (''speed_k'') - коэффициент k в формуле расчета скорости. Чтобы скорость не зависела от значения жизни - указываем speed_k = 1<br />
*'''Менять угол''' (''fixangle'') - изменение угла для предания плавности смены графики при дугообразном перемещении объекта. С появлением 3D-объектов больше не используется<br />
*'''Тип''' (''mtype'') - объекты можно разделять на типы (люди, монстры, звери и т.д.). Взаимодействие происходит между объектами разных типов, настраивается в добавляемых параметрах<br />
*'''Радиус''' (''mradius'') - значения радиуса. Попадание изомувера другого типа в этот радиус позволит начать взаимодействие.<br />
*'''Цель при действии''' (''mtarget'') - мувер может быть целью взаимодействия пока сам действует<br />
*'''Запретить действие''' (''disact'') - мувер не сможет перейти из acting_wait в acting<br />
*'''Время появления''' (''appear_time'') - время в миллисекундах появления и исчезания изомувера (длительность перехода по alpha)<br />
*'''Время провала''' (''fail_time'') - длительность анимации смерти объекта, по его окончанию произойдет переход в состояние ''disappear''<br />
*'''Время паузы''' (''pause_time'') - длительность "заморозки" объекта<br />
*'''Предмет паузы''' (''pause_item'') - предмет для включения паузы<br />
*'''fail при 0 жизни''' (''zerofail'') - 1- при нулевом уровне жизни изомувер перейдет в fail, 0 - останется жив<br />
*'''Не пересчитывать маршрут''' (''softrecalc'') - 1- при отключении ребер графа не произойдет пересчета маршрута, 0 - маршрут будет пересчитан<br />
*'''Реагировать на''' (''tapreact'') - 1- на тап, 0- на клик<br />
<br><br />
<br />
==Дополнительные параметры==<br />
[[Файл:Isomover1.png|right|300px]]<br />
*'''Графический ресурс:'''<br />
**вверх (''res0'') - графический ресурс движения вверх<br />
**вверх/вправо (''res1'') - графический ресурс движения вверх/вправо<br />
**вправо (''res2'') - графический ресурс движения вправо <br />
**вниз/вправо (''res3'') - графический ресурс движения вниз/вправо<br />
**вниз (''res4'') - графический ресурс движения вниз <br />
**вниз/влево (''res5'') - графический ресурс движения вниз/влево<br />
**влево (''res6'') - графический ресурс движения влево <br />
**вверх/влево (''res7'') - графический ресурс движения вверх/влево. Достаточно указать первые пять ресурсов, а остальные редактор отобразит автоматически симметрично<br />
**деятельность (''resa'') - графический ресурс для состояния acting<br />
**иконка персонажа (''char_ico'') - иконка, которая будет находится сверху над персонажем. Изменение масштаба во время игры не влияет на масштаб иконки. Рекомендуется создавать ее с пивотом у нижней границы, тогда при масштабировании не будет образовываться зазор между иконкой и графикой объекта<br />
**смещение иконки персонажа (''char_ico_shift'') - смещение иконки по вертикали<br />
**рисовать при действии (''resad'') - 1- мувер рисуется при состоянии acting, 0- не рисуется<br />
**провал (''resf'') - графический ресурс состояния fail. Может быть картинкой или анимацией<br />
**пауза (''resp'') - графический ресурс состояния pause<br />
**восстановление жизни (''resheal'') - графический ресурс восстановления жизни<br />
*'''3D ресурс'''<br />
**модель (''mdl'') - трехмерный ресурс для отображения объекта<br />
**scale x (''mdlSx'') - масштаб по оси ''x''<br />
**scale y (''mdlSy'') - масштаб по оси ''y''<br />
**scale z (''mdlSz'') - масштаб по оси ''z''<br />
*'''Звуки'''<br />
**всплывание подложки (''snd_panel'') - звук показывающейся подложки<br />
**исчезание подложки (''snd_panel_hide'') - звук прячущейся подложки<br />
**переход в acting (''snd_to_acting'') - звук перехода в состояние acting<br />
**применение предмета (''snd_item_used'') - звук применение предмета при взаимодействии<br />
**предмет при паузе (''snd_item_pause'') - звук применение предмета при паузе<br />
**конец паузы (''snd_pause_end'') - звук при окончании паузы<br />
**фейл взаимодействия (''snd_fail'') - звук при переходе в fail<br />
**успех взаимодействия (''snd_success'') - звук при переходе в win<br />
**клик (''snd_click'') - звук при клике<br />
*'''Коэффициент скорости'''<br />
**вертикальное (''speed_0'') - на этот коэффициент умножается скорость при вертикальном движении<br />
**диагональное (''speed_1'') - на этот коэффициент умножается скорость при диагональном движении<br />
**горизонтальное (''speed_2'') - на этот коэффициент умножается скорость при горизонтальном движении<br />
Обычно горизонтальный коэффициент равен 1.00, чуть меньше диагональный и еще меньше вертикальный. Это необходимо для создания реалистичности движения относительно перспективы. То есть объекты, двигаясь вверх, как бы отдаляются от нас в глубь, поэтому по экрану они движутся медленней<br />
[[Файл:Isomover2.png|right]]<br />
*'''Таймер''':<br />
**подложка (''digBg'') - фон для цифр таймера<br />
**цифры (''digNorm'') - набор из 10-и цифр в виде ресурса анимации (клипа)<br />
**двоеточие (''colNorm'') - графический ресурс двоеточия<br />
**dx (''dx'') - смещение таймера по оси ''x'' относительно пивота изомувера<br />
**dy (''dy'') - смещение таймера по оси ''y'' относительно пивота изомувера<br />
**dx между цифрами (''digShift'') - расстояние между цифрами таймера<br />
**dx от (''colShift'') - отступы числовых разрядов влево и вправо от двоеточия<br />
**жизнь (''objlife'') - здесь выбирается объект типа прогресс_бар для отображения шкалы уровня жизни. Progress_bar создается отдельным объектом<br />
Таймер позволяет отобразить время до окончания взаимодействия объектов. Например "корабль" прибыл в "порт" и начал отгружать груз. С помощью числового таймера или progress_bar можно увидеть через сколько закончится отгрузка. На рисунке справа показано взаимодействие двух объектов с изображение шкалы жизни одного из объектов и времени до конца взаимодействия.<br />
*'''Преследование'''<br />
**тип (''chasetype'') - тип объекта, который можно преследовать<br />
**радиус (''chaseradius'') - если объект указанного типа окажется в этом радиусе, то начнется преследование (например полицейская погоня)<br />
*'''Дорожное движение'''<br />
**радиус (''stopradius'') - объекты, которые двигались по одному ребру, останавливаются на расстоянии этого радиуса (необходимо для препятствия наслоений объектов на дороге, железнодорожных путях)<br />
*'''восстановление жизни''':<br />
**критический уровень (''pow_min'') - Критический уровень жизни<br />
**предмет (''pow_item'') - Предмет восстановления <br />
**время (''pow_time'') - Время восстановления жизни<br />
<br />
*курсор (''curs'') - Графический ресурс курсора текущего и всех дочерних объектов<br />
*прокликиваемая (''passClk'') - Если 1, то картинка прозрачна для клика мышкой (пропускает объектам под ней). Если 2, то картинка сама обрабатывает клик, но и пропускает его дальше" regexp="нет=0, да=1, обработать и пропустить=2<br />
*группа (''gr'') - Группа, в которую входит текущий объект<br />
*eitems (''eitems'') - Объект типа eitems<br />
<br><br />
<br />
==Добавляемые параметры==<br />
[[Файл:Isomover9.png|right|300px]]<br />
[[Файл:+.png]] '''Взаимодействие с другими объектами''':<br />
*тип (''mtype'') - тип объекта с которым по настроенному ниже сценарию будет происходить взаимодействие, -1 для любого типа<br />
*min жизнь (''minlife'') - минимальное значение жизни для начала взаимодействия, -1 не проверять<br />
*max жизнь (''maxlife'') - минимальное значение жизни для начала взаимодействия, -1 не проверять<br />
*тип актив (''mtype_a'') - тип мувера, который активирует взаимодействие, если данный в процессе подготовки<br />
*анимация (''res_a'') - анимация взаимодействия, например боя, разгрузки, разговора. Перетаскивается мышкой из редактора ресурсов<br />
*старт тип (''stype'') - тип старта взаимодействия<br />
**0 - бесконечное ожидание тапа. Переход в состояние acting не начнется, пока не произойдет тап по объекту<br />
**1 - автоматический переход в состояние acting<br />
**2 - время, через которое произойдет переход из acting_wait в acting после начала взаимодействия объектов<br />
**3 - переход по значению жизни<br />
*старт таймер (''stimer'') - время, за которое нужно активировать взаимодействие тапом<br />
*старт изм.жизни (''slife'') - скорость изменения жизни до активации взаимодействия тапом<br />
*старт изм.жизни другого (''slife_o'') - скорость изменения жизни враг до активации взаимодействия тапом<br />
*предмет (''item'') - предмет, необходимый для запуска активности. Актуально, когда имеется объект economics<br />
*иконка (''ico'') - иконка активности<br />
*смещение иконки (''ico_shift'') - смещение иконки активности по вертикали<br />
*актив тип (''atype'') - тип старта взаимодействия<br />
**0 - бесконечное ожидание тапа. Переход в состояние acting не начнется, пока не произойдет тап по объекту<br />
**1 - автоматический переход в состояние acting<br />
**2 - время, через которое произойдет переход из acting_wait в acting после начала взаимодействия объектов<br />
**3 - переход по значению жизни<br />
*актив таймер (''atime'') - время, которое длится взаимодействие<br />
*актив изменение жизни (''alife'') - скорость изменения жизни текущего объекта (ед/сек) в состоянии active<br />
*актив изменение жизни другого (''alife_o'') - скорость изменения жизни другого объекта (ед/сек) в состоянии active<br />
<br />
[[Файл:Isomover3.png|right|300px]]<br />
*объект инит (''obj'') - объект, состояние которого нужно изменить при переходе изомувера в acting_wait<br />
*состояние инит (''st'') - новое состояние другого объекта<br />
*объект старт (''obj_s'') - объект, состояние которого нужно изменить при переходе изомувера в acting<br />
*состояние старт (''st_s'') - новое состояние другого объекта<br />
*объект фейл (''obj_f'') - объект, состояние которого нужно изменить при переходе изомувера в состояние fail (проигрыш)<br />
*состояние фейл (''st_f'') - новое состояние другого объекта<br />
*объект успех (''obj_w'') - объект, состояние которого нужно изменить при переходе изомувера в состояние win (в случае победы)<br />
*состояние успех (''st_w'') - новое состояние другого объекта<br />
*дельта жизнь (''deltalife'') при успехе взаимодействия изменить значение жизни на эту величину<br />
*переводить другой в фейл (''o_fail'') - 1- переводить цель действия в fail, 0- в idle<br />
*переводить другой в мув (''o_move'') - при неудачном действии 1- переводить цель действия в move, 0- в idle<br />
*можно ускорить (''canspeed'') - 1- действие можно ускорить. От этого параметра зависит, какое событие будет вызываться по клику на объект в состоянии acting<br />
*звук ожидания (''snd_wait'') - звук, который будет воспроизводиться в состоянии acting_wait <br />
*звук действия (''snd_act'') - звук, который будет воспроизводиться в состоянии acting<br />
Для каждого типа объектов, с которыми взаимодействие возможно, необходимо добавить отдельный параметр "взаимодействие с другими объектами" и настроить его. Объекты инит, старт, фейл и успех вызываются при переходе текущего объекта в соответствующие состояния. Например, это может быть диалоговое окно, предлагающее продолжить взаимодействие, запуск дополнительных индикаторов, фейерверк в случае победы.<br />
<br />
[[Файл:+.png]] '''Клик при простое''' (''nst_idle''):<br />
*объект - объект, состояние которого меняется, если изомувер был нажат в состоянии idel<br />
*состояние - новое состояние объекта<br />
[[Файл:+.png]] '''Изменить состояние объекта''' (''nst_move''), он же '''клик при движении''':<br />
*объект - объект, состояние которого меняется, если изомувер был нажат в состоянии move<br />
*состояние - новое состояние объекта<br />
[[Файл:+.png]] '''Клик при паузе''' (''nst_pause''):<br />
*объект - объект, состояние которого меняется, если изомувер был нажат в состоянии pause (заморозка)<br />
*состояние - новое состояние объекта<br />
[[Файл:+.png]] '''Изменить состояние объекта''' (''nst_aw_n'') он же '''клик при acting_wait, если другие действия не возможны'''<br />
*объект - объект, состояние которого меняется, если изомувер был нажат в состоянии acting_wait<br />
*состояние - новое состояние объекта<br />
[[Файл:+.png]] '''Изменить состояние объекта''' (''nst_a_1'') он же '''клик при acting, ускорение возможно'''<br />
*объект - объект, состояние которого меняется, если изомувер был нажат в состоянии acting и ускорение возможно<br />
*состояние - новое состояние объекта<br />
[[Файл:+.png]] '''Изменить состояние объекта''' (''nst_a_2'') он же '''клик при acting, ускорение НЕвозможно'''<br />
*объект - объект, состояние которого меняется, если изомувер был нажат в состоянии acting и ускорение не возможно<br />
*состояние - новое состояние объекта<br />
[[Файл:+.png]] '''Изменить состояние объекта''' (''nst_beact'') он же '''клик при beeng_acting'''<br />
*объект - объект, состояние которого меняется, если изомувер был нажат в состоянии beeng_acting, когда воздействие совершалось над ним другим объектом<br />
*состояние - новое состояние объекта<br />
[[Файл:+.png]] '''Конец движения''' (''nst_finish''):<br />
*объект - объект, состояние которого меняется, если изомувер закончил движение (достиг точки finish)<br />
*состояние - новое состояние объекта<br />
[[Файл:+.png]] '''Отправили в текущую ноду''' (''nst_place''):<br />
*объект - объект, состояние которого меняется, если изомувер направлен в ту же ноду, в которой и находится<br />
*состояние - новое состояние объекта<br />
[[Файл:+.png]] '''Перешел в fail''' (''nst_gopause''):<br />
*объект - объект, состояние которого меняется, если изомувер перешел в pause<br />
*состояние - новое состояние объекта<br />
[[Файл:+.png]] '''Перешел в pause''' (''nst_heal''):<br />
*объект - объект, состояние которого меняется, если изомувер восстановил здоровье<br />
*состояние - новое состояние объекта<br />
[[Файл:+.png]] '''Восстановил здоровье''' (''nst_low_time''):<br />
*объект - объект, состояние которого меняется, если изомувер направлен в ту же ноду, в которой и находится<br />
*состояние - новое состояние объекта<br />
[[Файл:+.png]] '''Время истекло: изменить состояние объекта''' (''nst_low_time'') он же '''время на исходе: изменить состояние объекта''':<br />
*значение, при котором срабатывает обработчик<br />
*объект - объект, состояние которого меняется по истечению времени<br />
*состояние - новое состояние объекта<br />
<br><br />
<br />
==Состояния==<br />
[[Файл:isomover_box.png|right|350px]]<br />
*'''idle''' - дефолтное состояние, в которое isomover переходит после всех манипуляций. Недвижимым объектам следует передавать idle, чтобы они появились (нарисовались) на карте. Для движущихся объектов его практически не используют, объект сам рисуется с началом движения.<br><br />
*'''acting_wait''' - первое состояние взаимодействия (запускается первый таймер, анимация взаимодействия и ожидается старт).<br><br />
*'''acting''' - второе состояние взаимодействия (вызывается после применения предмета или клика, запускает второй таймер).<br><br />
*'''being_acted''' - в этом состоянии пребывает тот объект, над которым идет действие. Объект в этом состоянии невидим.<br><br />
*'''move''' - состояние движения от старта к финишу.<br><br />
*'''move_to_smooth''' - состояние движения от текущей ноды (или следующей, если объект идет) к финишу.<br><br />
*'''appear''' - показать по альфе за время появления.<br><br />
*'''disappear''' - скрыть по альфе за время появления.<br><br />
*'''prepare_acting''' - вызвать взаимодействие без оппонента. Перед вызовом нужно в поле param записать номер взаимодействия по порядку.<br><br />
*'''start_acting''' - продолжить взаимодействие без оппонента. Перед вызовом нужно в поле param записать номер взаимодействия по порядку.<br />
*'''pause''' - состояние "заморозки"<br />
<br><br />
<br />
==Особенности работы==<br />
[[Файл:Isomover6.png|right|300px]][[Файл:Isomover8.png|left|200px]]<br />
Движение объекта типа ''isomover'' задается с помощью отдельной машины состояний через которую происходит управление состояниями move, acting и остальными. Рассмотрим на конкретном примере. У нас есть объект '''woman''' типа ''isomover''. Необходимо, чтобы наш изомувер начал движение с точки b1 и дальше начал двигаться бесконечно по кольцу b2-b3-b4-b5. Движение задается машиной состояний ''woman_machine''.<br><br />
Для управления циклическим ходом назначим дополнительный параметр ''ww''. Название параметра должно быть уникально и не совпадать с параметрами игровых объектов.<br><br />
Для того, чтобы изомувер двигался каждый раз к новой точке, необходимо повторно инициализировать его точку финиша. Однако, если мы продолжим указывать ему состояние move для движения, то каждый раз он будет начинать движение с точки старта. Чтобы это исправить воспользуемся состоянием move_to_smooth, которое заставляет двигаться изомувер от текущей ноде к финишу, будто старт и финиш мы все время смещаем на шаг.<br />
<br>Основная логика будет находиться в состоянии ''circle_moving'' нашей машины. Надо сделать так, чтобы изомувер переходил в это состояние после движения по каждому из ребер. Для этого зайдем в свойства изомувера, нажмем правой кнопкой мыши и добавим параметр '''конец движения'''. У него есть поля ''объект'' и ''свойство''. Объект - машина состояний ''woman_machine'', состояние ''circle_moving'' этой машины. Таким образом, в конце каждого акта движения изомувер будет запускать состояние, в котором мы будем менять его точку финиша и запускать его движение.<br />
<br>Не забываем, что все операции с переменными должны отделяться скобками, как и сама переменная<br><br><br />
<br />
[[Category:Main objects]]<br />
[[Category:Game mechanic]]</div>Iskoroboghttps://wiki.appsalutecreator.com/index.php?title=Bubble_Shooter&diff=8620Bubble Shooter2017-03-15T08:40:57Z<p>Iskorobog: /* Добавляемые параметры */</p>
<hr />
<div>{{TOC right}}<br />
Игровая механика BubbleShooter.<br />
<br />
=BubbleShooter Setup=<br />
'''Общие настройки'''<br />
*''' память''' - (memo) Если 1, то при повторном открытии экрана объект не обновляет свои параметры (помнит текущие параметры, оставшиеся от предыдущего посещения экрана)<br />
*'''res''' - графичесий ресурс поля для игры. Его размер является зоной для тапа.<br />
*'''Слушатель''' - объект типа Matchbattle.<br />
<br />
'''Группа - Сохранения'''<br />
*'''нужны''' - если '''да''', то сохраняет результаты игры в опции.<br />
*'''сохранять глобально''' - (prof) Если ==0, то значение будет сохранено в текущий профиль, если 1 - то глобально.<br />
*'''место''' - место в опциях, куда сохраняются данные игры.<br />
*'''флаг старых сейвов''' - (old_records) Место в опциях, куда пишем флаг 1 , когда считали и отправили сейвы со старого бабл шутера<br />
<br />
<br />
=Графика=<br />
*'''красные шарики''' - графический ресурс шарика данного цвета.<br />
*'''зеленые шарики''' - графический ресурс шарика данного цвета.<br />
*'''синие шарики''' - графический ресурс шарика данного цвета.<br />
*'''желтые шарики''' - графический ресурс шарика данного цвета.<br />
*'''голубые шарики''' - графический ресурс шарика данного цвета.<br />
*'''пурпурные шарики''' - графический ресурс шарика данного цвета.<br />
<br />
<br />
=Прицел=<br />
*'''res''' - Графический ресурс прицела, перетаскивается из редактора ресурсов.<br />
*'''Время''' - Время от нажатия до момента появления прицела.<br />
*'''Время перед мувом''' - Время от нажатия до момента появления прицела в движении.<br />
*'''Смещение''' - Расстояние между пальцем и центром прицела.<br />
<br />
<br />
=Курсор=<br />
*'''res''' - Графический ресурс курсора, перетаскивается из редактора ресурсов.<br />
*'''Кол-во шариков''' - количество шариков в курсоре.<br />
*'''Отражения''' - максимальное кол-во отражений от стенок.<br />
*'''минимальный скейл''' - (curminsc) минимальный скейл графики шариков<br />
*'''максимальный скейл''' - (curmaxsc) максимальный скейл графики шариков<br />
*'''время скалирования''' - (cursctm) время скалирования шариков<br />
<br />
<br />
=Эффекты=<br />
*'''Удар бомбы об гвоздь''' - объект, запускаемый на месте удара бомбы об гвоздь.<br />
*'''Удар шара об гвоздь''' - объект, запускаемый на месте удара шарика об гвоздь.<br />
*'''Очки в намберсах''' - объект, запускаемый в месте лопанья шариков.<br />
*'''Очки в намберсах 2''' - объект с финальными очками, летящими в цель.<br />
<br />
<br />
=Слушатели=<br />
*'''Выстрел''' - объект, которому передаются нижеследующие состояния при выстреле из пушки. Состояния: '''shot''' - выстрел обычным шариком, '''mine''' - выстрел миной, '''color''' - выстрел цветной бомбой, '''bullet''' - выстрел бомбой-ядром.<br />
<br />
<br />
=Настройки=<br />
[[Файл:02-01-2014 13-40-18.png|250px|thumb|right]]<br />
*'''Позиция стреляющего''' - Позиция стреляющего шарика (x;y)<br />
*'''Расстояние от следующего''' - Расстояние от стреляющего шарика до следующего за ним.<br />
*'''Высота физической сетки''' - Высота физической сетки поля.<br />
*'''Ширина физической сетки''' - Ширина физической сетки поля.<br />
*'''Смещение''' - Смешение поля относительно начала координат родителя.<br />
*'''Радиус шариков''' - Радиус шариков.<br />
*'''Мин.радиус шариков''' - Мин.размер шариков во время "взрыва".<br />
*'''Макс.радиус шариков''' - Макс.размер шариков во время "взрыва".<br />
*'''Ширина шариков''' - Ширина шариков на поле. Вычисляется по формуле (2R+2).<br />
*'''Высота шариков''' - Высота шариков на поле. Вычисляется по формуле (2R-2).<br />
*'''номер фрейма графики шариков''' - (clip_frame) Номер фрейма в клипе графики шариков.<br />
*'''Мин.энергия''' - Мин.энергия выстрела. (или что-то в этом духе, более точной информацией обладает только создатель оригинального кода баббла)<br />
*'''Макс.энергия''' - Макс.энергия выстрела.<br />
*'''убирать выбитый цвет из пушки''' - (fbub1) Убирать выбитый цвет из пушки (нет=0, да=1).<br />
*'''Уровень''' - Уровень игры: новичок, любитель, эксперт, мастер, кастомный (настройки уровня сложности зависят от параметров заданных в добавляемом поле "уровень сложности")<br />
*'''Вид игры''' - Режим игры: аркада, стратегия. Режим Аркада был создан для моды "битва", в котором предусматривалось добавление доп.рядов через определенное время бездействия игрока.<br />
[[Файл:02-01-2014 10-04-52.png|250px|thumb|right]]<br />
*'''Начальные шаги до наезда''' - Количество шагов через которое поле "накажет" игрока дополнительными рядами.<br />
*'''Промежутки добавления''' - Время через которое будут добавляться следующий ряд (в режиме Аркада).<br />
*'''Добавление рядов''' - Разрешить добавление рядов. Иначе только извне. Целесообразно использовать в снукере.<br />
*'''Тип досыпания''' - Тип досыпания шариков. Снукер или классический бабблшутер.<br />
*'''подтип классического досыпания''' - (addrowt) Вид классического досыпания шариков (нормальное=0,с заполнениями пустот=1).<br />
*'''Обваливать висячие''' - Обваливать висячие шарики (да/нет). Отключение этого параметра используется в игре снукер.<br />
*'''Отскок от потолка''' - Название говорит само за себя. Используется в снукере.<br />
*'''Файл-описание уровня''' - Файл формата .xml в котором будет построены уровни для игры. Пример приведен справа.<br />
*'''Номер уровня в файле''' - Стартовый уровень, с которого будет начинаться игра.<br />
*'''матч по цифрам''' - (nummatch) Матч по цифрам (нет=0, да=1).<br />
*'''multColor''' - (multColor) умножать число сматченых шариков на номер цвета при подсчете очков (нет=0, да=1).<br />
*'''removeDropWait''' - (removeDropWait) <br />
*'''объект подложки''' - (objback) Объект подлжоки, которой будет передана графика и состояни выстрела и его окончания.<br />
*'''включить анти-чит''' - (anti_cheat) Включить проверку на чит (нет=0, да=1).<br />
*'''собирать статистику''' - (collec_stat) Включить сбор статистики (нет=0, да=1).<br />
*'''складывать строки''' - (is_summing) Включить сбор статистики (нет=0, да=1).Складывать ли наезжающие строки при выбивании нескольких цветов.<br />
<br />
=настройки Lost Numbers=<br />
*'''время перекрашивания''' - (lnreptm)<br />
*'''макс скейл перекрашивания''' - (lnrepmaxsc)<br />
*'''перекрашивать сразу''' - (lnrepimm) нет=0, да=1<br />
<br />
<br />
=Параметры бомб=<br />
===Мина===<br />
[[Файл:02-01-2014 13-37-11.png|250px|thumb|right]]<br />
*'''res''' - Графический ресурс мины в пушке.<br />
*'''res1''' - Графический ресурс мины в полете.<br />
*'''подложка''' - (bomb1bg) Графический ресурс для подложки бомбы (взрыв по радиусу).<br />
*'''Вероятность''' - Вероятность появления данной бомбы.<br />
*'''Скип''' - Количество пропущенных первых шагов для появления бомбы (не реализовано).<br />
*'''Количество''' - Количество появления бомбы за одну игровую сессию.<br />
*'''Шаги''' - Количество шагов до появления данной бомбы.<br />
*'''Шаги ok''' - Количество удачных шагов до появления бомбы.<br />
*'''Шаги miss''' - Количество неудачных шагов до появления бомбы.<br />
*'''n1''' - Минимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''n2''' - Максимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''Радиус''' - Радиус взрыва данной бомбы<br />
*'''Эффект''' - Эффект на месте взрыва бомбы. Объект должен иметь состояние beg.<br />
<br />
===Цвет===<br />
*'''res''' - Графический ресурс бомбы-цвет в пушке.<br />
*'''res1''' - Графический ресурс бомбы-цвет в полете.<br />
*'''подложка''' - (bomb2bg) Графический ресурс для подложки бомбы 2 (взрыв шариков одного цвета).<br />
*'''Вероятность''' - Вероятность появления данной бомбы.<br />
*'''Скип''' - Количество пропущенных первых шагов для появления бомбы (не реализовано).<br />
*'''Количество''' - Количество появления бомбы за одну игровую сессию.<br />
*'''Шаги''' - Количество шагов до появления данной бомбы.<br />
*'''Шаги ok''' - Количество удачных шагов до появления бомбы.<br />
*'''Шаги miss''' - Количество неудачных шагов до появления бомбы.<br />
*'''n1''' - Минимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''n2''' - Максимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
<br />
===Ядро===<br />
*'''res''' - Графический ресурс ядра в пушке.<br />
*'''res1''' - Графический ресурс ядра в полете.<br />
*'''подложка''' - (bomb3bg) Графический ресурс для подложки бомбы 3 (летит и взрывает все вокруг себя).<br />
*'''Вероятность''' - Вероятность появления данной бомбы.<br />
*'''Скип''' - Количество пропущенных первых шагов для появления бомбы (не реализовано).<br />
*'''Количество''' - Количество появления бомбы за одну игровую сессию.<br />
*'''Шаги''' - Количество шагов до появления данной бомбы.<br />
*'''Шаги ok''' - Количество удачных шагов до появления бомбы.<br />
*'''Шаги miss''' - Количество неудачных шагов до появления бомбы.<br />
*'''n1''' - Минимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''n2''' - Максимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''Флайер''' - Флайер летящий под бомбочкой.<br />
*'''Флайер 2''' - Флайер летящий под бомбочкой.<br />
*'''Скорость''' - Скорость перемещения бомбочки.<br />
*'''Число отскоков''' - Число отскоков от стен для бомбочки.<br />
<br />
=Звуки=<br />
*'''shot''' - Звук выстрела.<br />
*'''fail''' - Звук промаха.<br />
*'''explosion''' - Звук взрыва шариков.<br />
*'''intro''' - Звук в начале игры.<br />
*'''game over''' - Звук окончания игры.<br />
*'''bomb mine''' - Звук выстрела бомбы "мина".<br />
*'''bomb bullet''' - Звук выстрела бомбы "ядро".<br />
*'''bomb color''' - Звук выстрела бомбы "цвет".<br />
*'''Взрыв бомбы мина''' - Говорит само за себя.<br />
*'''Взрыв бомбы ядро''' - Говорит само за себя.<br />
*'''Взрыв бомбы цвет''' - Говорит само за себя.<br />
<br />
<br />
=Очковая система=<br />
*'''Тип''' - ''classic'', ''lostnumbers'', ''nightopera''<br />
*'''коеф для матча''' - (match_coef) коэффициент очков для матча.<br />
*'''коеф для обвала''' - (drop_coef) коэффициент очков для обвала.<br />
*'''Визуализатор шагов''' - счетчик, прогресс, которые отображает оставшееся количество шагов до "наезда".<br />
*'''Визуализатор последних очков''' - счетчик, таймер, прогресс последних очков.<br />
*'''Аниматор последних очков''' - машина со счетчиком (подобъектом), которая запускается в месте попадания шарика. Должна иметь состояние ''show''.<br />
*'''Тип подсчета''' - очки могут считаться как: 1) количество сматченных шариков * на kBub; 2) сумма порядковых номеров (сматчили 4 шарика -> очки = 1+2+3+4)<br />
*'''kBub''' - коэффициент за сматченные шарики.<br />
*'''kCmb''' - коэффициент за комбо.<br />
*'''kMov''' - коэффициент за оставшиеся ходы.<br />
*'''kTim''' - коэффициент за оставшиеся секунды.<br />
*'''kPst''' - коэффициент за удаленные с поля вредители.<br />
*'''kSnw''' - коэффициент за удаленные с поля снежинки.<br />
<br />
= Состояния =<br />
*'''pause''' - перевести объект в паузу; <br />
*'''resume''' - вытащить объект из паузы;<br />
*'''hint''' - выполнить хинт ( нужно в поле hntt указать номер хинта);<br />
*'''gover''' - <br />
*'''game_continue''' - продолжить игру (например, в случае, когда мы проиграли, но даем игроку шанс, убрав несколько нижних линий);<br />
*'''game_lose''' - задекларировать проигрыш (например, когда мы проиграли, и игрок отказался от шанса продолжить игру);<br />
*'''cur_on''' - отображать траекторию при прицеливании;<br />
*'''cur_off''' - убрать траекторию при прицеливании;<br />
*'''fbubswap''' - поменять местами шарики в пушке;<br />
*'''del_bottom''' - удалить несколько (задается параметром) нижних рядов;<br />
*'''effdigsc2''' - <br />
*'''update_params''' - обновить параметры объекта(пока только номер фрейма клипа шариков);<br />
*'''reset_game''' - сбросит игру , которая сохранена в опциях;<br />
*'''send_stat''' - отправить статистику.<br />
<br />
<br />
<br />
<br />
=Добавляемые параметры=<br />
<br />
===[[Файл:+.png]] Графический ресурс===<br />
*'''Клип''' - Графический ресурс, перетаскивается из редактора ресурсов.<br />
*'''Номер цвета''' - Номер цвета, который будет соответствовать значению цвета в файле-уровня.<br />
<br />
<br />
===[[Файл:+.png]] Ресурсы функциональных шариков===<br />
[[Файл:03-02-2014 10-35-45.png|200px|thumb|right]]<br />
*'''Функционал''' - Записываем значение чудо-шарика из файла-настроек.<br />
*'''Клип''' - Графический ресурс шариков, обладающих данным функционалом.<br />
*'''Звук''' - Звук шарика, обладающего данным функционалом.<br />
*'''Эффект''' - Машина/Патикл обладающие состоянием beg.<br />
<br />
<br />
===[[Файл:+.png]] Параметры анимации для шарика лунка===<br />
*'''Время перемещения''' - время движения шарика в центр лунки.<br />
*'''Время исчезновения''' - время исчезновения шарика в лунке (скейл).<br />
*'''Время жизни''' - время жизни эффекта.<br />
<br />
<br />
===[[Файл:+.png]] Параметры анимации для шарика колючка===<br />
*'''Время жизни''' - время жизни эффекта.<br />
<br />
<br />
===[[Файл:+.png]] Параметры анимации для шарика снежинка===<br />
*'''Время жизни''' - время жизни эффекта.<br />
<br />
<br />
===[[Файл:+.png]] Параметры анимации для шарика вредитель===<br />
*'''Время жизни''' - время жизни эффекта.<br />
*'''Время ожидания скина''' - время, пока поменяется скин шарика.<br />
*'''Эффект''' - эффект, возникающий в момент обрастания вредителя снежинками.<br />
<br />
<br />
===[[Файл:+.png]] Физика===<br />
[[Файл:02-01-2014 13-57-15.png|250px|thumb|right]]<br />
*'''Справа находится пример настроек физики для шариков радиусом 24.'''<br />
*'''Move''' - Коэффициент отталкивания летящего шарика.<br />
*'''MinDest2''' - Квадрат минимального расстояния, когда шарик считается в покое.<br />
*'''MinVel2''' - Квадрат минимальной скорости, когда шарик считается в покое.<br />
*'''Down''' - Трение.<br />
*'''MaxVel''' - Максимальная скорость колебаний.<br />
*'''Elast''' - Эластичность с-мы (коэффициент для сил действующих между соседними шариками).<br />
*'''Glue''' - Коэффициент притяжения шарика к центру ячейки.<br />
*'''MoveC''' - Радиус действия летящего шарика в ячейках.<br />
*'''BangVel''' - Приращение для скорости взрыва.<br />
<br />
<br />
===[[Файл:+.png]] параметры хинта бомба===<br />
*'''res''' - (res) Графический ресурс для бомбочки.<br />
*'''радиус''' - (r) Радиус действия бомбочки (взрывает шарики в пределах этого радиуса).<br />
<br />
<br />
===[[Файл:+.png]] параметры хинта бомба удаляющая цвет к которому коснулась при выстреле===<br />
*'''res''' - (res) Графический ресурс для бомбочки.<br />
<br />
<br />
===[[Файл:+.png]] кастомные параметры поля===<br />
*'''кол-во цветов''' - (colors) Количество цветов.<br />
*'''заполненные строки''' - (lines) Количество заполненных строк.<br />
*'''шаги до наезда''' - (steps) Количество шагов до наезда.<br />
<br />
<br />
===[[Файл:+.png]] Уровень сложности===<br />
''Название параметров говорит само за себя. Создавать их можно бесконечное множество, главное не забывать назначать им порядковые номера в поле "уровень" по мере добавления новых уровней. Количество уровней сложности внутри объекта должно соответствовать количеству уровней сложности у необходимого Вам монстра. Количество цветов заданное в файле-настройках .xml имеет приоритет над теми, что мы задаем в объекте.''<br />
*'''Уровень''' - номер уровня.<br />
*'''Кол-во цветов''' - число цветов на поле.<br />
*'''Шаги до наезда''' - число шагов до наезда.<br />
*'''Бомба мина: вероятность''' - вероятность появления мины в процентах.<br />
*'''Бомба мина: радиус''' - радиус мины в шариках.<br />
*'''Бомба ядро:вероятность''' - вероятность появления ядра в процентах.<br />
*'''Бомба ядро: число отскоков от стен''' - число отскоков ядра от стен поля.<br />
*'''Бомба цвет: количество''' - число бомб-цвет, которые появятся на уровне.<br />
*'''Бомба цвет: шаги''' - число шагов вначале уровня до появления бомбы-цвет.<br />
<br />
<br />
===[[Файл:+.png]] Визуализатор общих очков===<br />
*'''Объект''' - счетчик, прогресс, показывающий сумму очков за уровень.<br />
<br />
<br />
===[[Файл:+.png]] Игра выиграна: изменить состояние объекта===<br />
*'''Объект''' - объект, состояние которого меняем при выигрыше.<br />
*'''Состояние''' - новое состояние объекта.<br />
<br />
<br />
===[[Файл:+.png]] Игра выиграна: изменить параметр объекта===<br />
*'''Объект''' - объект, параметр которого меняем при выигрыше.<br />
*'''Параметр''' - параметр, который меняем.<br />
*'''Значение''' - новое значение параметра.<br />
<br />
<br />
===[[Файл:+.png]] Игра проиграна: изменить состояние объекта===<br />
*'''Объект''' - объект, состояние которого меняем при проигрыше.<br />
*'''Состояние''' - новое состояние объекта.<br />
<br />
<br />
===[[Файл:+.png]] Игра проиграна: изменить параметр объекта===<br />
*'''Объект''' - объект, параметр которого меняем при проигрыше.<br />
*'''Параметр''' - параметр, который меняем.<br />
*'''Значение''' - новое значение параметра.<br />
<br />
<br />
===[[Файл:+.png]] хинт бомба цвет: успех: изменить состояние объекта===<br />
*'''объект''' - Объект, состояние которого нужно изменить.<br />
*'''состояние''' - Новое состояние объекта.<br />
<br />
<br />
===[[Файл:+.png]] хинт бомба цвет: неуспех: изменить состояние объекта===<br />
*'''объект''' - Объект, состояние которого нужно изменить.<br />
*'''состояние''' - Новое состояние объекта.<br />
<br />
<br />
===[[Файл:+.png]] хинт бомба ядро: успех: изменить состояние объекта===<br />
*'''объект''' - Объект, состояние которого нужно изменить.<br />
*'''состояние''' - Новое состояние объекта.<br />
<br />
<br />
===[[Файл:+.png]]хинт бомба ядро: неуспех: изменить состояние объекта===<br />
*'''объект''' - Объект, состояние которого нужно изменить.<br />
*'''состояние''' - Новое состояние объекта.<br />
<br />
<br />
===[[Файл:+.png]] хинт бомба мина: успех: изменить состояние объекта===<br />
*'''объект''' - Объект, состояние которого нужно изменить.<br />
*'''состояние''' - Новое состояние объекта.<br />
<br />
<br />
===[[Файл:+.png]] хинт бомба мина: неуспех: изменить состояние объекта===<br />
*'''объект''' - Объект, состояние которого нужно изменить.<br />
*'''состояние''' - Новое состояние объект.<br />
<br />
<br />
===[[Файл:+.png]] хинт 'поменять шары местами': успех: изменить состояние объекта===<br />
*'''объект''' - Объект, состояние которого нужно изменить.<br />
*'''состояние''' - Новое состояние объект.<br />
<br />
<br />
===[[Файл:+.png]] хинт 'поменять шары местами': неудача: изменить состояние объекта===<br />
*'''объект''' - Объект, состояние которого нужно изменить.<br />
*'''состояние''' - Новое состояние объект.<br />
<br />
<br />
===[[Файл:+.png]] выбили цвет: изменить состояние объекта===<br />
*'''объект''' - Объект, состояние которого нужно изменить.<br />
*'''состояние''' - Новое состояние объект.<br />
<br />
<br />
===[[Файл:+.png]] Выбили цвет: изменить состояние объекта===<br />
*'''Объект''' - объект, состояние которого меняем при удалении цвета с поля. При этом BSh передает указанному объекту параметр ''param_removed_colors'' со значением количества выбитых цветов за данный ход.<br />
*'''Состояние''' - новое состояние объекта.<br />
<br />
=Хинты=<br />
*'''Замена шарика''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=0, после чего передать состояние hint.<br />
*'''Удаление цвета''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=5, после чего передать состояние hint.<br />
*'''Ядро''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=3, после чего передать состояние hint.<br />
*'''Мина''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=1, после чего передать состояние hint.<br />
*'''Курсор''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=0, после чего передать состояние cur_on. После выстрела курсор исчезает.<br />
<br />
<br />
=Пример проекта=<br />
S:\!MOBILE\!!!EditorGames\Wiki_sample\bubble_snooker_graphprogress.zip<br />
<br />
<br />
=Пример реализации: задание уровня=<br />
<br />
::'''1)''' Если нам необходимо задать уровень шутеру прямиком из экрана где он находиться, и при этом он уже запустился (прорисовалась графика). То с начало мы должны передать ему состояние end, после чего задать необходимый уровень и переинитить сцену на которой он находиться (желательно чтобы на этой сцене был только шутер):<br />
<br />
[[Файл:Bubble change level.png|centre]]<br />
<br />
<br />
::'''2)''' Если же, мы задаем нужный уровень удалённо ( с другого экрана), то мы расшариваем экран с самим шутером на сцену где будем задавать ему новый уровень. И на том экране (удалённом) задаём шутеру нужный уровень (levelNum). <br />
<br />
[[Category:Game mechanic]]</div>Iskoroboghttps://wiki.appsalutecreator.com/index.php?title=Bubble_Shooter&diff=8619Bubble Shooter2017-03-15T08:31:00Z<p>Iskorobog: /* Файл:+.png кастомные параметры поля */</p>
<hr />
<div>{{TOC right}}<br />
Игровая механика BubbleShooter.<br />
<br />
=BubbleShooter Setup=<br />
'''Общие настройки'''<br />
*''' память''' - (memo) Если 1, то при повторном открытии экрана объект не обновляет свои параметры (помнит текущие параметры, оставшиеся от предыдущего посещения экрана)<br />
*'''res''' - графичесий ресурс поля для игры. Его размер является зоной для тапа.<br />
*'''Слушатель''' - объект типа Matchbattle.<br />
<br />
'''Группа - Сохранения'''<br />
*'''нужны''' - если '''да''', то сохраняет результаты игры в опции.<br />
*'''сохранять глобально''' - (prof) Если ==0, то значение будет сохранено в текущий профиль, если 1 - то глобально.<br />
*'''место''' - место в опциях, куда сохраняются данные игры.<br />
*'''флаг старых сейвов''' - (old_records) Место в опциях, куда пишем флаг 1 , когда считали и отправили сейвы со старого бабл шутера<br />
<br />
<br />
=Графика=<br />
*'''красные шарики''' - графический ресурс шарика данного цвета.<br />
*'''зеленые шарики''' - графический ресурс шарика данного цвета.<br />
*'''синие шарики''' - графический ресурс шарика данного цвета.<br />
*'''желтые шарики''' - графический ресурс шарика данного цвета.<br />
*'''голубые шарики''' - графический ресурс шарика данного цвета.<br />
*'''пурпурные шарики''' - графический ресурс шарика данного цвета.<br />
<br />
<br />
=Прицел=<br />
*'''res''' - Графический ресурс прицела, перетаскивается из редактора ресурсов.<br />
*'''Время''' - Время от нажатия до момента появления прицела.<br />
*'''Время перед мувом''' - Время от нажатия до момента появления прицела в движении.<br />
*'''Смещение''' - Расстояние между пальцем и центром прицела.<br />
<br />
<br />
=Курсор=<br />
*'''res''' - Графический ресурс курсора, перетаскивается из редактора ресурсов.<br />
*'''Кол-во шариков''' - количество шариков в курсоре.<br />
*'''Отражения''' - максимальное кол-во отражений от стенок.<br />
*'''минимальный скейл''' - (curminsc) минимальный скейл графики шариков<br />
*'''максимальный скейл''' - (curmaxsc) максимальный скейл графики шариков<br />
*'''время скалирования''' - (cursctm) время скалирования шариков<br />
<br />
<br />
=Эффекты=<br />
*'''Удар бомбы об гвоздь''' - объект, запускаемый на месте удара бомбы об гвоздь.<br />
*'''Удар шара об гвоздь''' - объект, запускаемый на месте удара шарика об гвоздь.<br />
*'''Очки в намберсах''' - объект, запускаемый в месте лопанья шариков.<br />
*'''Очки в намберсах 2''' - объект с финальными очками, летящими в цель.<br />
<br />
<br />
=Слушатели=<br />
*'''Выстрел''' - объект, которому передаются нижеследующие состояния при выстреле из пушки. Состояния: '''shot''' - выстрел обычным шариком, '''mine''' - выстрел миной, '''color''' - выстрел цветной бомбой, '''bullet''' - выстрел бомбой-ядром.<br />
<br />
<br />
=Настройки=<br />
[[Файл:02-01-2014 13-40-18.png|250px|thumb|right]]<br />
*'''Позиция стреляющего''' - Позиция стреляющего шарика (x;y)<br />
*'''Расстояние от следующего''' - Расстояние от стреляющего шарика до следующего за ним.<br />
*'''Высота физической сетки''' - Высота физической сетки поля.<br />
*'''Ширина физической сетки''' - Ширина физической сетки поля.<br />
*'''Смещение''' - Смешение поля относительно начала координат родителя.<br />
*'''Радиус шариков''' - Радиус шариков.<br />
*'''Мин.радиус шариков''' - Мин.размер шариков во время "взрыва".<br />
*'''Макс.радиус шариков''' - Макс.размер шариков во время "взрыва".<br />
*'''Ширина шариков''' - Ширина шариков на поле. Вычисляется по формуле (2R+2).<br />
*'''Высота шариков''' - Высота шариков на поле. Вычисляется по формуле (2R-2).<br />
*'''номер фрейма графики шариков''' - (clip_frame) Номер фрейма в клипе графики шариков.<br />
*'''Мин.энергия''' - Мин.энергия выстрела. (или что-то в этом духе, более точной информацией обладает только создатель оригинального кода баббла)<br />
*'''Макс.энергия''' - Макс.энергия выстрела.<br />
*'''убирать выбитый цвет из пушки''' - (fbub1) Убирать выбитый цвет из пушки (нет=0, да=1).<br />
*'''Уровень''' - Уровень игры: новичок, любитель, эксперт, мастер, кастомный (настройки уровня сложности зависят от параметров заданных в добавляемом поле "уровень сложности")<br />
*'''Вид игры''' - Режим игры: аркада, стратегия. Режим Аркада был создан для моды "битва", в котором предусматривалось добавление доп.рядов через определенное время бездействия игрока.<br />
[[Файл:02-01-2014 10-04-52.png|250px|thumb|right]]<br />
*'''Начальные шаги до наезда''' - Количество шагов через которое поле "накажет" игрока дополнительными рядами.<br />
*'''Промежутки добавления''' - Время через которое будут добавляться следующий ряд (в режиме Аркада).<br />
*'''Добавление рядов''' - Разрешить добавление рядов. Иначе только извне. Целесообразно использовать в снукере.<br />
*'''Тип досыпания''' - Тип досыпания шариков. Снукер или классический бабблшутер.<br />
*'''подтип классического досыпания''' - (addrowt) Вид классического досыпания шариков (нормальное=0,с заполнениями пустот=1).<br />
*'''Обваливать висячие''' - Обваливать висячие шарики (да/нет). Отключение этого параметра используется в игре снукер.<br />
*'''Отскок от потолка''' - Название говорит само за себя. Используется в снукере.<br />
*'''Файл-описание уровня''' - Файл формата .xml в котором будет построены уровни для игры. Пример приведен справа.<br />
*'''Номер уровня в файле''' - Стартовый уровень, с которого будет начинаться игра.<br />
*'''матч по цифрам''' - (nummatch) Матч по цифрам (нет=0, да=1).<br />
*'''multColor''' - (multColor) умножать число сматченых шариков на номер цвета при подсчете очков (нет=0, да=1).<br />
*'''removeDropWait''' - (removeDropWait) <br />
*'''объект подложки''' - (objback) Объект подлжоки, которой будет передана графика и состояни выстрела и его окончания.<br />
*'''включить анти-чит''' - (anti_cheat) Включить проверку на чит (нет=0, да=1).<br />
*'''собирать статистику''' - (collec_stat) Включить сбор статистики (нет=0, да=1).<br />
*'''складывать строки''' - (is_summing) Включить сбор статистики (нет=0, да=1).Складывать ли наезжающие строки при выбивании нескольких цветов.<br />
<br />
=настройки Lost Numbers=<br />
*'''время перекрашивания''' - (lnreptm)<br />
*'''макс скейл перекрашивания''' - (lnrepmaxsc)<br />
*'''перекрашивать сразу''' - (lnrepimm) нет=0, да=1<br />
<br />
<br />
=Параметры бомб=<br />
===Мина===<br />
[[Файл:02-01-2014 13-37-11.png|250px|thumb|right]]<br />
*'''res''' - Графический ресурс мины в пушке.<br />
*'''res1''' - Графический ресурс мины в полете.<br />
*'''подложка''' - (bomb1bg) Графический ресурс для подложки бомбы (взрыв по радиусу).<br />
*'''Вероятность''' - Вероятность появления данной бомбы.<br />
*'''Скип''' - Количество пропущенных первых шагов для появления бомбы (не реализовано).<br />
*'''Количество''' - Количество появления бомбы за одну игровую сессию.<br />
*'''Шаги''' - Количество шагов до появления данной бомбы.<br />
*'''Шаги ok''' - Количество удачных шагов до появления бомбы.<br />
*'''Шаги miss''' - Количество неудачных шагов до появления бомбы.<br />
*'''n1''' - Минимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''n2''' - Максимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''Радиус''' - Радиус взрыва данной бомбы<br />
*'''Эффект''' - Эффект на месте взрыва бомбы. Объект должен иметь состояние beg.<br />
<br />
===Цвет===<br />
*'''res''' - Графический ресурс бомбы-цвет в пушке.<br />
*'''res1''' - Графический ресурс бомбы-цвет в полете.<br />
*'''подложка''' - (bomb2bg) Графический ресурс для подложки бомбы 2 (взрыв шариков одного цвета).<br />
*'''Вероятность''' - Вероятность появления данной бомбы.<br />
*'''Скип''' - Количество пропущенных первых шагов для появления бомбы (не реализовано).<br />
*'''Количество''' - Количество появления бомбы за одну игровую сессию.<br />
*'''Шаги''' - Количество шагов до появления данной бомбы.<br />
*'''Шаги ok''' - Количество удачных шагов до появления бомбы.<br />
*'''Шаги miss''' - Количество неудачных шагов до появления бомбы.<br />
*'''n1''' - Минимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''n2''' - Максимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
<br />
===Ядро===<br />
*'''res''' - Графический ресурс ядра в пушке.<br />
*'''res1''' - Графический ресурс ядра в полете.<br />
*'''подложка''' - (bomb3bg) Графический ресурс для подложки бомбы 3 (летит и взрывает все вокруг себя).<br />
*'''Вероятность''' - Вероятность появления данной бомбы.<br />
*'''Скип''' - Количество пропущенных первых шагов для появления бомбы (не реализовано).<br />
*'''Количество''' - Количество появления бомбы за одну игровую сессию.<br />
*'''Шаги''' - Количество шагов до появления данной бомбы.<br />
*'''Шаги ok''' - Количество удачных шагов до появления бомбы.<br />
*'''Шаги miss''' - Количество неудачных шагов до появления бомбы.<br />
*'''n1''' - Минимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''n2''' - Максимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''Флайер''' - Флайер летящий под бомбочкой.<br />
*'''Флайер 2''' - Флайер летящий под бомбочкой.<br />
*'''Скорость''' - Скорость перемещения бомбочки.<br />
*'''Число отскоков''' - Число отскоков от стен для бомбочки.<br />
<br />
=Звуки=<br />
*'''shot''' - Звук выстрела.<br />
*'''fail''' - Звук промаха.<br />
*'''explosion''' - Звук взрыва шариков.<br />
*'''intro''' - Звук в начале игры.<br />
*'''game over''' - Звук окончания игры.<br />
*'''bomb mine''' - Звук выстрела бомбы "мина".<br />
*'''bomb bullet''' - Звук выстрела бомбы "ядро".<br />
*'''bomb color''' - Звук выстрела бомбы "цвет".<br />
*'''Взрыв бомбы мина''' - Говорит само за себя.<br />
*'''Взрыв бомбы ядро''' - Говорит само за себя.<br />
*'''Взрыв бомбы цвет''' - Говорит само за себя.<br />
<br />
<br />
=Очковая система=<br />
*'''Тип''' - ''classic'', ''lostnumbers'', ''nightopera''<br />
*'''коеф для матча''' - (match_coef) коэффициент очков для матча.<br />
*'''коеф для обвала''' - (drop_coef) коэффициент очков для обвала.<br />
*'''Визуализатор шагов''' - счетчик, прогресс, которые отображает оставшееся количество шагов до "наезда".<br />
*'''Визуализатор последних очков''' - счетчик, таймер, прогресс последних очков.<br />
*'''Аниматор последних очков''' - машина со счетчиком (подобъектом), которая запускается в месте попадания шарика. Должна иметь состояние ''show''.<br />
*'''Тип подсчета''' - очки могут считаться как: 1) количество сматченных шариков * на kBub; 2) сумма порядковых номеров (сматчили 4 шарика -> очки = 1+2+3+4)<br />
*'''kBub''' - коэффициент за сматченные шарики.<br />
*'''kCmb''' - коэффициент за комбо.<br />
*'''kMov''' - коэффициент за оставшиеся ходы.<br />
*'''kTim''' - коэффициент за оставшиеся секунды.<br />
*'''kPst''' - коэффициент за удаленные с поля вредители.<br />
*'''kSnw''' - коэффициент за удаленные с поля снежинки.<br />
<br />
= Состояния =<br />
*'''pause''' - перевести объект в паузу; <br />
*'''resume''' - вытащить объект из паузы;<br />
*'''hint''' - выполнить хинт ( нужно в поле hntt указать номер хинта);<br />
*'''gover''' - <br />
*'''game_continue''' - продолжить игру (например, в случае, когда мы проиграли, но даем игроку шанс, убрав несколько нижних линий);<br />
*'''game_lose''' - задекларировать проигрыш (например, когда мы проиграли, и игрок отказался от шанса продолжить игру);<br />
*'''cur_on''' - отображать траекторию при прицеливании;<br />
*'''cur_off''' - убрать траекторию при прицеливании;<br />
*'''fbubswap''' - поменять местами шарики в пушке;<br />
*'''del_bottom''' - удалить несколько (задается параметром) нижних рядов;<br />
*'''effdigsc2''' - <br />
*'''update_params''' - обновить параметры объекта(пока только номер фрейма клипа шариков);<br />
*'''reset_game''' - сбросит игру , которая сохранена в опциях;<br />
*'''send_stat''' - отправить статистику.<br />
<br />
<br />
<br />
<br />
=Добавляемые параметры=<br />
<br />
===[[Файл:+.png]] Графический ресурс===<br />
*'''Клип''' - Графический ресурс, перетаскивается из редактора ресурсов.<br />
*'''Номер цвета''' - Номер цвета, который будет соответствовать значению цвета в файле-уровня.<br />
<br />
<br />
===[[Файл:+.png]] Ресурсы функциональных шариков===<br />
[[Файл:03-02-2014 10-35-45.png|200px|thumb|right]]<br />
*'''Функционал''' - Записываем значение чудо-шарика из файла-настроек.<br />
*'''Клип''' - Графический ресурс шариков, обладающих данным функционалом.<br />
*'''Звук''' - Звук шарика, обладающего данным функционалом.<br />
*'''Эффект''' - Машина/Патикл обладающие состоянием beg.<br />
<br />
<br />
===[[Файл:+.png]] Параметры анимации для шарика лунка===<br />
*'''Время перемещения''' - время движения шарика в центр лунки.<br />
*'''Время исчезновения''' - время исчезновения шарика в лунке (скейл).<br />
*'''Время жизни''' - время жизни эффекта.<br />
<br />
<br />
===[[Файл:+.png]] Параметры анимации для шарика колючка===<br />
*'''Время жизни''' - время жизни эффекта.<br />
<br />
<br />
===[[Файл:+.png]] Параметры анимации для шарика снежинка===<br />
*'''Время жизни''' - время жизни эффекта.<br />
<br />
<br />
===[[Файл:+.png]] Параметры анимации для шарика вредитель===<br />
*'''Время жизни''' - время жизни эффекта.<br />
*'''Время ожидания скина''' - время, пока поменяется скин шарика.<br />
*'''Эффект''' - эффект, возникающий в момент обрастания вредителя снежинками.<br />
<br />
<br />
===[[Файл:+.png]] Физика===<br />
[[Файл:02-01-2014 13-57-15.png|250px|thumb|right]]<br />
*'''Справа находится пример настроек физики для шариков радиусом 24.'''<br />
*'''Move''' - Коэффициент отталкивания летящего шарика.<br />
*'''MinDest2''' - Квадрат минимального расстояния, когда шарик считается в покое.<br />
*'''MinVel2''' - Квадрат минимальной скорости, когда шарик считается в покое.<br />
*'''Down''' - Трение.<br />
*'''MaxVel''' - Максимальная скорость колебаний.<br />
*'''Elast''' - Эластичность с-мы (коэффициент для сил действующих между соседними шариками).<br />
*'''Glue''' - Коэффициент притяжения шарика к центру ячейки.<br />
*'''MoveC''' - Радиус действия летящего шарика в ячейках.<br />
*'''BangVel''' - Приращение для скорости взрыва.<br />
<br />
<br />
===[[Файл:+.png]] параметры хинта бомба===<br />
*'''res''' - (res) Графический ресурс для бомбочки.<br />
*'''радиус''' - (r) Радиус действия бомбочки (взрывает шарики в пределах этого радиуса).<br />
<br />
<br />
===[[Файл:+.png]] параметры хинта бомба удаляющая цвет к которому коснулась при выстреле===<br />
*'''res''' - (res) Графический ресурс для бомбочки.<br />
<br />
<br />
===[[Файл:+.png]] кастомные параметры поля===<br />
*'''кол-во цветов''' - (colors) Количество цветов.<br />
*'''заполненные строки''' - (lines) Количество заполненных строк.<br />
*'''шаги до наезда''' - (steps) Количество шагов до наезда.<br />
<br />
===[[Файл:+.png]] Уровень сложности===<br />
''Название параметров говорит само за себя. Создавать их можно бесконечное множество, главное не забывать назначать им порядковые номера в поле "уровень" по мере добавления новых уровней. Количество уровней сложности внутри объекта должно соответствовать количеству уровней сложности у необходимого Вам монстра. Количество цветов заданное в файле-настройках .xml имеет приоритет над теми, что мы задаем в объекте.''<br />
*'''Уровень''' - номер уровня.<br />
*'''Кол-во цветов''' - число цветов на поле.<br />
*'''Шаги до наезда''' - число шагов до наезда.<br />
*'''Бомба мина: вероятность''' - вероятность появления мины в процентах.<br />
*'''Бомба мина: радиус''' - радиус мины в шариках.<br />
*'''Бомба ядро:вероятность''' - вероятность появления ядра в процентах.<br />
*'''Бомба ядро: число отскоков от стен''' - число отскоков ядра от стен поля.<br />
*'''Бомба цвет: количество''' - число бомб-цвет, которые появятся на уровне.<br />
*'''Бомба цвет: шаги''' - число шагов вначале уровня до появления бомбы-цвет.<br />
<br />
<br />
===[[Файл:+.png]] Визуализатор общих очков===<br />
*'''Объект''' - счетчик, прогресс, показывающий сумму очков за уровень.<br />
<br />
<br />
===[[Файл:+.png]] Игра выиграна: изменить состояние объекта===<br />
*'''Объект''' - объект, состояние которого меняем при выигрыше.<br />
*'''Состояние''' - новое состояние объекта.<br />
<br />
<br />
===[[Файл:+.png]] Игра выиграна: изменить параметр объекта===<br />
*'''Объект''' - объект, параметр которого меняем при выигрыше.<br />
*'''Параметр''' - параметр, который меняем.<br />
*'''Значение''' - новое значение параметра.<br />
<br />
<br />
===[[Файл:+.png]] Игра проиграна: изменить состояние объекта===<br />
*'''Объект''' - объект, состояние которого меняем при проигрыше.<br />
*'''Состояние''' - новое состояние объекта.<br />
<br />
===[[Файл:+.png]] Игра проиграна: изменить параметр объекта===<br />
*'''Объект''' - объект, параметр которого меняем при проигрыше.<br />
*'''Параметр''' - параметр, который меняем.<br />
*'''Значение''' - новое значение параметра.<br />
<br />
<br />
===[[Файл:+.png]] Выбили цвет: изменить состояние объекта===<br />
*'''Объект''' - объект, состояние которого меняем при удалении цвета с поля. При этом BSh передает указанному объекту параметр ''param_removed_colors'' со значением количества выбитых цветов за данный ход.<br />
*'''Состояние''' - новое состояние объекта.<br />
<br />
=Хинты=<br />
*'''Замена шарика''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=0, после чего передать состояние hint.<br />
*'''Удаление цвета''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=5, после чего передать состояние hint.<br />
*'''Ядро''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=3, после чего передать состояние hint.<br />
*'''Мина''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=1, после чего передать состояние hint.<br />
*'''Курсор''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=0, после чего передать состояние cur_on. После выстрела курсор исчезает.<br />
<br />
<br />
=Пример проекта=<br />
S:\!MOBILE\!!!EditorGames\Wiki_sample\bubble_snooker_graphprogress.zip<br />
<br />
<br />
=Пример реализации: задание уровня=<br />
<br />
::'''1)''' Если нам необходимо задать уровень шутеру прямиком из экрана где он находиться, и при этом он уже запустился (прорисовалась графика). То с начало мы должны передать ему состояние end, после чего задать необходимый уровень и переинитить сцену на которой он находиться (желательно чтобы на этой сцене был только шутер):<br />
<br />
[[Файл:Bubble change level.png|centre]]<br />
<br />
<br />
::'''2)''' Если же, мы задаем нужный уровень удалённо ( с другого экрана), то мы расшариваем экран с самим шутером на сцену где будем задавать ему новый уровень. И на том экране (удалённом) задаём шутеру нужный уровень (levelNum). <br />
<br />
[[Category:Game mechanic]]</div>Iskoroboghttps://wiki.appsalutecreator.com/index.php?title=Bubble_Shooter&diff=8618Bubble Shooter2017-03-15T08:28:46Z<p>Iskorobog: /* Добавляемые параметры */</p>
<hr />
<div>{{TOC right}}<br />
Игровая механика BubbleShooter.<br />
<br />
=BubbleShooter Setup=<br />
'''Общие настройки'''<br />
*''' память''' - (memo) Если 1, то при повторном открытии экрана объект не обновляет свои параметры (помнит текущие параметры, оставшиеся от предыдущего посещения экрана)<br />
*'''res''' - графичесий ресурс поля для игры. Его размер является зоной для тапа.<br />
*'''Слушатель''' - объект типа Matchbattle.<br />
<br />
'''Группа - Сохранения'''<br />
*'''нужны''' - если '''да''', то сохраняет результаты игры в опции.<br />
*'''сохранять глобально''' - (prof) Если ==0, то значение будет сохранено в текущий профиль, если 1 - то глобально.<br />
*'''место''' - место в опциях, куда сохраняются данные игры.<br />
*'''флаг старых сейвов''' - (old_records) Место в опциях, куда пишем флаг 1 , когда считали и отправили сейвы со старого бабл шутера<br />
<br />
<br />
=Графика=<br />
*'''красные шарики''' - графический ресурс шарика данного цвета.<br />
*'''зеленые шарики''' - графический ресурс шарика данного цвета.<br />
*'''синие шарики''' - графический ресурс шарика данного цвета.<br />
*'''желтые шарики''' - графический ресурс шарика данного цвета.<br />
*'''голубые шарики''' - графический ресурс шарика данного цвета.<br />
*'''пурпурные шарики''' - графический ресурс шарика данного цвета.<br />
<br />
<br />
=Прицел=<br />
*'''res''' - Графический ресурс прицела, перетаскивается из редактора ресурсов.<br />
*'''Время''' - Время от нажатия до момента появления прицела.<br />
*'''Время перед мувом''' - Время от нажатия до момента появления прицела в движении.<br />
*'''Смещение''' - Расстояние между пальцем и центром прицела.<br />
<br />
<br />
=Курсор=<br />
*'''res''' - Графический ресурс курсора, перетаскивается из редактора ресурсов.<br />
*'''Кол-во шариков''' - количество шариков в курсоре.<br />
*'''Отражения''' - максимальное кол-во отражений от стенок.<br />
*'''минимальный скейл''' - (curminsc) минимальный скейл графики шариков<br />
*'''максимальный скейл''' - (curmaxsc) максимальный скейл графики шариков<br />
*'''время скалирования''' - (cursctm) время скалирования шариков<br />
<br />
<br />
=Эффекты=<br />
*'''Удар бомбы об гвоздь''' - объект, запускаемый на месте удара бомбы об гвоздь.<br />
*'''Удар шара об гвоздь''' - объект, запускаемый на месте удара шарика об гвоздь.<br />
*'''Очки в намберсах''' - объект, запускаемый в месте лопанья шариков.<br />
*'''Очки в намберсах 2''' - объект с финальными очками, летящими в цель.<br />
<br />
<br />
=Слушатели=<br />
*'''Выстрел''' - объект, которому передаются нижеследующие состояния при выстреле из пушки. Состояния: '''shot''' - выстрел обычным шариком, '''mine''' - выстрел миной, '''color''' - выстрел цветной бомбой, '''bullet''' - выстрел бомбой-ядром.<br />
<br />
<br />
=Настройки=<br />
[[Файл:02-01-2014 13-40-18.png|250px|thumb|right]]<br />
*'''Позиция стреляющего''' - Позиция стреляющего шарика (x;y)<br />
*'''Расстояние от следующего''' - Расстояние от стреляющего шарика до следующего за ним.<br />
*'''Высота физической сетки''' - Высота физической сетки поля.<br />
*'''Ширина физической сетки''' - Ширина физической сетки поля.<br />
*'''Смещение''' - Смешение поля относительно начала координат родителя.<br />
*'''Радиус шариков''' - Радиус шариков.<br />
*'''Мин.радиус шариков''' - Мин.размер шариков во время "взрыва".<br />
*'''Макс.радиус шариков''' - Макс.размер шариков во время "взрыва".<br />
*'''Ширина шариков''' - Ширина шариков на поле. Вычисляется по формуле (2R+2).<br />
*'''Высота шариков''' - Высота шариков на поле. Вычисляется по формуле (2R-2).<br />
*'''номер фрейма графики шариков''' - (clip_frame) Номер фрейма в клипе графики шариков.<br />
*'''Мин.энергия''' - Мин.энергия выстрела. (или что-то в этом духе, более точной информацией обладает только создатель оригинального кода баббла)<br />
*'''Макс.энергия''' - Макс.энергия выстрела.<br />
*'''убирать выбитый цвет из пушки''' - (fbub1) Убирать выбитый цвет из пушки (нет=0, да=1).<br />
*'''Уровень''' - Уровень игры: новичок, любитель, эксперт, мастер, кастомный (настройки уровня сложности зависят от параметров заданных в добавляемом поле "уровень сложности")<br />
*'''Вид игры''' - Режим игры: аркада, стратегия. Режим Аркада был создан для моды "битва", в котором предусматривалось добавление доп.рядов через определенное время бездействия игрока.<br />
[[Файл:02-01-2014 10-04-52.png|250px|thumb|right]]<br />
*'''Начальные шаги до наезда''' - Количество шагов через которое поле "накажет" игрока дополнительными рядами.<br />
*'''Промежутки добавления''' - Время через которое будут добавляться следующий ряд (в режиме Аркада).<br />
*'''Добавление рядов''' - Разрешить добавление рядов. Иначе только извне. Целесообразно использовать в снукере.<br />
*'''Тип досыпания''' - Тип досыпания шариков. Снукер или классический бабблшутер.<br />
*'''подтип классического досыпания''' - (addrowt) Вид классического досыпания шариков (нормальное=0,с заполнениями пустот=1).<br />
*'''Обваливать висячие''' - Обваливать висячие шарики (да/нет). Отключение этого параметра используется в игре снукер.<br />
*'''Отскок от потолка''' - Название говорит само за себя. Используется в снукере.<br />
*'''Файл-описание уровня''' - Файл формата .xml в котором будет построены уровни для игры. Пример приведен справа.<br />
*'''Номер уровня в файле''' - Стартовый уровень, с которого будет начинаться игра.<br />
*'''матч по цифрам''' - (nummatch) Матч по цифрам (нет=0, да=1).<br />
*'''multColor''' - (multColor) умножать число сматченых шариков на номер цвета при подсчете очков (нет=0, да=1).<br />
*'''removeDropWait''' - (removeDropWait) <br />
*'''объект подложки''' - (objback) Объект подлжоки, которой будет передана графика и состояни выстрела и его окончания.<br />
*'''включить анти-чит''' - (anti_cheat) Включить проверку на чит (нет=0, да=1).<br />
*'''собирать статистику''' - (collec_stat) Включить сбор статистики (нет=0, да=1).<br />
*'''складывать строки''' - (is_summing) Включить сбор статистики (нет=0, да=1).Складывать ли наезжающие строки при выбивании нескольких цветов.<br />
<br />
=настройки Lost Numbers=<br />
*'''время перекрашивания''' - (lnreptm)<br />
*'''макс скейл перекрашивания''' - (lnrepmaxsc)<br />
*'''перекрашивать сразу''' - (lnrepimm) нет=0, да=1<br />
<br />
<br />
=Параметры бомб=<br />
===Мина===<br />
[[Файл:02-01-2014 13-37-11.png|250px|thumb|right]]<br />
*'''res''' - Графический ресурс мины в пушке.<br />
*'''res1''' - Графический ресурс мины в полете.<br />
*'''подложка''' - (bomb1bg) Графический ресурс для подложки бомбы (взрыв по радиусу).<br />
*'''Вероятность''' - Вероятность появления данной бомбы.<br />
*'''Скип''' - Количество пропущенных первых шагов для появления бомбы (не реализовано).<br />
*'''Количество''' - Количество появления бомбы за одну игровую сессию.<br />
*'''Шаги''' - Количество шагов до появления данной бомбы.<br />
*'''Шаги ok''' - Количество удачных шагов до появления бомбы.<br />
*'''Шаги miss''' - Количество неудачных шагов до появления бомбы.<br />
*'''n1''' - Минимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''n2''' - Максимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''Радиус''' - Радиус взрыва данной бомбы<br />
*'''Эффект''' - Эффект на месте взрыва бомбы. Объект должен иметь состояние beg.<br />
<br />
===Цвет===<br />
*'''res''' - Графический ресурс бомбы-цвет в пушке.<br />
*'''res1''' - Графический ресурс бомбы-цвет в полете.<br />
*'''подложка''' - (bomb2bg) Графический ресурс для подложки бомбы 2 (взрыв шариков одного цвета).<br />
*'''Вероятность''' - Вероятность появления данной бомбы.<br />
*'''Скип''' - Количество пропущенных первых шагов для появления бомбы (не реализовано).<br />
*'''Количество''' - Количество появления бомбы за одну игровую сессию.<br />
*'''Шаги''' - Количество шагов до появления данной бомбы.<br />
*'''Шаги ok''' - Количество удачных шагов до появления бомбы.<br />
*'''Шаги miss''' - Количество неудачных шагов до появления бомбы.<br />
*'''n1''' - Минимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''n2''' - Максимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
<br />
===Ядро===<br />
*'''res''' - Графический ресурс ядра в пушке.<br />
*'''res1''' - Графический ресурс ядра в полете.<br />
*'''подложка''' - (bomb3bg) Графический ресурс для подложки бомбы 3 (летит и взрывает все вокруг себя).<br />
*'''Вероятность''' - Вероятность появления данной бомбы.<br />
*'''Скип''' - Количество пропущенных первых шагов для появления бомбы (не реализовано).<br />
*'''Количество''' - Количество появления бомбы за одну игровую сессию.<br />
*'''Шаги''' - Количество шагов до появления данной бомбы.<br />
*'''Шаги ok''' - Количество удачных шагов до появления бомбы.<br />
*'''Шаги miss''' - Количество неудачных шагов до появления бомбы.<br />
*'''n1''' - Минимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''n2''' - Максимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''Флайер''' - Флайер летящий под бомбочкой.<br />
*'''Флайер 2''' - Флайер летящий под бомбочкой.<br />
*'''Скорость''' - Скорость перемещения бомбочки.<br />
*'''Число отскоков''' - Число отскоков от стен для бомбочки.<br />
<br />
=Звуки=<br />
*'''shot''' - Звук выстрела.<br />
*'''fail''' - Звук промаха.<br />
*'''explosion''' - Звук взрыва шариков.<br />
*'''intro''' - Звук в начале игры.<br />
*'''game over''' - Звук окончания игры.<br />
*'''bomb mine''' - Звук выстрела бомбы "мина".<br />
*'''bomb bullet''' - Звук выстрела бомбы "ядро".<br />
*'''bomb color''' - Звук выстрела бомбы "цвет".<br />
*'''Взрыв бомбы мина''' - Говорит само за себя.<br />
*'''Взрыв бомбы ядро''' - Говорит само за себя.<br />
*'''Взрыв бомбы цвет''' - Говорит само за себя.<br />
<br />
<br />
=Очковая система=<br />
*'''Тип''' - ''classic'', ''lostnumbers'', ''nightopera''<br />
*'''коеф для матча''' - (match_coef) коэффициент очков для матча.<br />
*'''коеф для обвала''' - (drop_coef) коэффициент очков для обвала.<br />
*'''Визуализатор шагов''' - счетчик, прогресс, которые отображает оставшееся количество шагов до "наезда".<br />
*'''Визуализатор последних очков''' - счетчик, таймер, прогресс последних очков.<br />
*'''Аниматор последних очков''' - машина со счетчиком (подобъектом), которая запускается в месте попадания шарика. Должна иметь состояние ''show''.<br />
*'''Тип подсчета''' - очки могут считаться как: 1) количество сматченных шариков * на kBub; 2) сумма порядковых номеров (сматчили 4 шарика -> очки = 1+2+3+4)<br />
*'''kBub''' - коэффициент за сматченные шарики.<br />
*'''kCmb''' - коэффициент за комбо.<br />
*'''kMov''' - коэффициент за оставшиеся ходы.<br />
*'''kTim''' - коэффициент за оставшиеся секунды.<br />
*'''kPst''' - коэффициент за удаленные с поля вредители.<br />
*'''kSnw''' - коэффициент за удаленные с поля снежинки.<br />
<br />
= Состояния =<br />
*'''pause''' - перевести объект в паузу; <br />
*'''resume''' - вытащить объект из паузы;<br />
*'''hint''' - выполнить хинт ( нужно в поле hntt указать номер хинта);<br />
*'''gover''' - <br />
*'''game_continue''' - продолжить игру (например, в случае, когда мы проиграли, но даем игроку шанс, убрав несколько нижних линий);<br />
*'''game_lose''' - задекларировать проигрыш (например, когда мы проиграли, и игрок отказался от шанса продолжить игру);<br />
*'''cur_on''' - отображать траекторию при прицеливании;<br />
*'''cur_off''' - убрать траекторию при прицеливании;<br />
*'''fbubswap''' - поменять местами шарики в пушке;<br />
*'''del_bottom''' - удалить несколько (задается параметром) нижних рядов;<br />
*'''effdigsc2''' - <br />
*'''update_params''' - обновить параметры объекта(пока только номер фрейма клипа шариков);<br />
*'''reset_game''' - сбросит игру , которая сохранена в опциях;<br />
*'''send_stat''' - отправить статистику.<br />
<br />
<br />
<br />
<br />
=Добавляемые параметры=<br />
<br />
===[[Файл:+.png]] Графический ресурс===<br />
*'''Клип''' - Графический ресурс, перетаскивается из редактора ресурсов.<br />
*'''Номер цвета''' - Номер цвета, который будет соответствовать значению цвета в файле-уровня.<br />
<br />
<br />
===[[Файл:+.png]] Ресурсы функциональных шариков===<br />
[[Файл:03-02-2014 10-35-45.png|200px|thumb|right]]<br />
*'''Функционал''' - Записываем значение чудо-шарика из файла-настроек.<br />
*'''Клип''' - Графический ресурс шариков, обладающих данным функционалом.<br />
*'''Звук''' - Звук шарика, обладающего данным функционалом.<br />
*'''Эффект''' - Машина/Патикл обладающие состоянием beg.<br />
<br />
<br />
===[[Файл:+.png]] Параметры анимации для шарика лунка===<br />
*'''Время перемещения''' - время движения шарика в центр лунки.<br />
*'''Время исчезновения''' - время исчезновения шарика в лунке (скейл).<br />
*'''Время жизни''' - время жизни эффекта.<br />
<br />
<br />
===[[Файл:+.png]] Параметры анимации для шарика колючка===<br />
*'''Время жизни''' - время жизни эффекта.<br />
<br />
<br />
===[[Файл:+.png]] Параметры анимации для шарика снежинка===<br />
*'''Время жизни''' - время жизни эффекта.<br />
<br />
<br />
===[[Файл:+.png]] Параметры анимации для шарика вредитель===<br />
*'''Время жизни''' - время жизни эффекта.<br />
*'''Время ожидания скина''' - время, пока поменяется скин шарика.<br />
*'''Эффект''' - эффект, возникающий в момент обрастания вредителя снежинками.<br />
<br />
<br />
===[[Файл:+.png]] Физика===<br />
[[Файл:02-01-2014 13-57-15.png|250px|thumb|right]]<br />
*'''Справа находится пример настроек физики для шариков радиусом 24.'''<br />
*'''Move''' - Коэффициент отталкивания летящего шарика.<br />
*'''MinDest2''' - Квадрат минимального расстояния, когда шарик считается в покое.<br />
*'''MinVel2''' - Квадрат минимальной скорости, когда шарик считается в покое.<br />
*'''Down''' - Трение.<br />
*'''MaxVel''' - Максимальная скорость колебаний.<br />
*'''Elast''' - Эластичность с-мы (коэффициент для сил действующих между соседними шариками).<br />
*'''Glue''' - Коэффициент притяжения шарика к центру ячейки.<br />
*'''MoveC''' - Радиус действия летящего шарика в ячейках.<br />
*'''BangVel''' - Приращение для скорости взрыва.<br />
<br />
<br />
===[[Файл:+.png]] параметры хинта бомба===<br />
*'''res''' - (res) Графический ресурс для бомбочки.<br />
*'''радиус''' - (r) Радиус действия бомбочки (взрывает шарики в пределах этого радиуса).<br />
<br />
<br />
===[[Файл:+.png]] параметры хинта бомба удаляющая цвет к которому коснулась при выстреле===<br />
*'''res''' - (res) Графический ресурс для бомбочки.<br />
<br />
<br />
===[[Файл:+.png]] кастомные параметры поля===<br />
<br />
<br />
===[[Файл:+.png]] Уровень сложности===<br />
''Название параметров говорит само за себя. Создавать их можно бесконечное множество, главное не забывать назначать им порядковые номера в поле "уровень" по мере добавления новых уровней. Количество уровней сложности внутри объекта должно соответствовать количеству уровней сложности у необходимого Вам монстра. Количество цветов заданное в файле-настройках .xml имеет приоритет над теми, что мы задаем в объекте.''<br />
*'''Уровень''' - номер уровня.<br />
*'''Кол-во цветов''' - число цветов на поле.<br />
*'''Шаги до наезда''' - число шагов до наезда.<br />
*'''Бомба мина: вероятность''' - вероятность появления мины в процентах.<br />
*'''Бомба мина: радиус''' - радиус мины в шариках.<br />
*'''Бомба ядро:вероятность''' - вероятность появления ядра в процентах.<br />
*'''Бомба ядро: число отскоков от стен''' - число отскоков ядра от стен поля.<br />
*'''Бомба цвет: количество''' - число бомб-цвет, которые появятся на уровне.<br />
*'''Бомба цвет: шаги''' - число шагов вначале уровня до появления бомбы-цвет.<br />
<br />
<br />
===[[Файл:+.png]] Визуализатор общих очков===<br />
*'''Объект''' - счетчик, прогресс, показывающий сумму очков за уровень.<br />
<br />
<br />
===[[Файл:+.png]] Игра выиграна: изменить состояние объекта===<br />
*'''Объект''' - объект, состояние которого меняем при выигрыше.<br />
*'''Состояние''' - новое состояние объекта.<br />
<br />
<br />
===[[Файл:+.png]] Игра выиграна: изменить параметр объекта===<br />
*'''Объект''' - объект, параметр которого меняем при выигрыше.<br />
*'''Параметр''' - параметр, который меняем.<br />
*'''Значение''' - новое значение параметра.<br />
<br />
<br />
===[[Файл:+.png]] Игра проиграна: изменить состояние объекта===<br />
*'''Объект''' - объект, состояние которого меняем при проигрыше.<br />
*'''Состояние''' - новое состояние объекта.<br />
<br />
===[[Файл:+.png]] Игра проиграна: изменить параметр объекта===<br />
*'''Объект''' - объект, параметр которого меняем при проигрыше.<br />
*'''Параметр''' - параметр, который меняем.<br />
*'''Значение''' - новое значение параметра.<br />
<br />
<br />
===[[Файл:+.png]] Выбили цвет: изменить состояние объекта===<br />
*'''Объект''' - объект, состояние которого меняем при удалении цвета с поля. При этом BSh передает указанному объекту параметр ''param_removed_colors'' со значением количества выбитых цветов за данный ход.<br />
*'''Состояние''' - новое состояние объекта.<br />
<br />
=Хинты=<br />
*'''Замена шарика''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=0, после чего передать состояние hint.<br />
*'''Удаление цвета''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=5, после чего передать состояние hint.<br />
*'''Ядро''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=3, после чего передать состояние hint.<br />
*'''Мина''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=1, после чего передать состояние hint.<br />
*'''Курсор''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=0, после чего передать состояние cur_on. После выстрела курсор исчезает.<br />
<br />
<br />
=Пример проекта=<br />
S:\!MOBILE\!!!EditorGames\Wiki_sample\bubble_snooker_graphprogress.zip<br />
<br />
<br />
=Пример реализации: задание уровня=<br />
<br />
::'''1)''' Если нам необходимо задать уровень шутеру прямиком из экрана где он находиться, и при этом он уже запустился (прорисовалась графика). То с начало мы должны передать ему состояние end, после чего задать необходимый уровень и переинитить сцену на которой он находиться (желательно чтобы на этой сцене был только шутер):<br />
<br />
[[Файл:Bubble change level.png|centre]]<br />
<br />
<br />
::'''2)''' Если же, мы задаем нужный уровень удалённо ( с другого экрана), то мы расшариваем экран с самим шутером на сцену где будем задавать ему новый уровень. И на том экране (удалённом) задаём шутеру нужный уровень (levelNum). <br />
<br />
[[Category:Game mechanic]]</div>Iskoroboghttps://wiki.appsalutecreator.com/index.php?title=Bubble_Shooter&diff=8617Bubble Shooter2017-03-15T08:27:01Z<p>Iskorobog: /* Файл:+.png параметры хинта бомба удаляющая цвет к которому коснулась при выстреле */</p>
<hr />
<div>{{TOC right}}<br />
Игровая механика BubbleShooter.<br />
<br />
=BubbleShooter Setup=<br />
'''Общие настройки'''<br />
*''' память''' - (memo) Если 1, то при повторном открытии экрана объект не обновляет свои параметры (помнит текущие параметры, оставшиеся от предыдущего посещения экрана)<br />
*'''res''' - графичесий ресурс поля для игры. Его размер является зоной для тапа.<br />
*'''Слушатель''' - объект типа Matchbattle.<br />
<br />
'''Группа - Сохранения'''<br />
*'''нужны''' - если '''да''', то сохраняет результаты игры в опции.<br />
*'''сохранять глобально''' - (prof) Если ==0, то значение будет сохранено в текущий профиль, если 1 - то глобально.<br />
*'''место''' - место в опциях, куда сохраняются данные игры.<br />
*'''флаг старых сейвов''' - (old_records) Место в опциях, куда пишем флаг 1 , когда считали и отправили сейвы со старого бабл шутера<br />
<br />
<br />
=Графика=<br />
*'''красные шарики''' - графический ресурс шарика данного цвета.<br />
*'''зеленые шарики''' - графический ресурс шарика данного цвета.<br />
*'''синие шарики''' - графический ресурс шарика данного цвета.<br />
*'''желтые шарики''' - графический ресурс шарика данного цвета.<br />
*'''голубые шарики''' - графический ресурс шарика данного цвета.<br />
*'''пурпурные шарики''' - графический ресурс шарика данного цвета.<br />
<br />
<br />
=Прицел=<br />
*'''res''' - Графический ресурс прицела, перетаскивается из редактора ресурсов.<br />
*'''Время''' - Время от нажатия до момента появления прицела.<br />
*'''Время перед мувом''' - Время от нажатия до момента появления прицела в движении.<br />
*'''Смещение''' - Расстояние между пальцем и центром прицела.<br />
<br />
<br />
=Курсор=<br />
*'''res''' - Графический ресурс курсора, перетаскивается из редактора ресурсов.<br />
*'''Кол-во шариков''' - количество шариков в курсоре.<br />
*'''Отражения''' - максимальное кол-во отражений от стенок.<br />
*'''минимальный скейл''' - (curminsc) минимальный скейл графики шариков<br />
*'''максимальный скейл''' - (curmaxsc) максимальный скейл графики шариков<br />
*'''время скалирования''' - (cursctm) время скалирования шариков<br />
<br />
<br />
=Эффекты=<br />
*'''Удар бомбы об гвоздь''' - объект, запускаемый на месте удара бомбы об гвоздь.<br />
*'''Удар шара об гвоздь''' - объект, запускаемый на месте удара шарика об гвоздь.<br />
*'''Очки в намберсах''' - объект, запускаемый в месте лопанья шариков.<br />
*'''Очки в намберсах 2''' - объект с финальными очками, летящими в цель.<br />
<br />
<br />
=Слушатели=<br />
*'''Выстрел''' - объект, которому передаются нижеследующие состояния при выстреле из пушки. Состояния: '''shot''' - выстрел обычным шариком, '''mine''' - выстрел миной, '''color''' - выстрел цветной бомбой, '''bullet''' - выстрел бомбой-ядром.<br />
<br />
<br />
=Настройки=<br />
[[Файл:02-01-2014 13-40-18.png|250px|thumb|right]]<br />
*'''Позиция стреляющего''' - Позиция стреляющего шарика (x;y)<br />
*'''Расстояние от следующего''' - Расстояние от стреляющего шарика до следующего за ним.<br />
*'''Высота физической сетки''' - Высота физической сетки поля.<br />
*'''Ширина физической сетки''' - Ширина физической сетки поля.<br />
*'''Смещение''' - Смешение поля относительно начала координат родителя.<br />
*'''Радиус шариков''' - Радиус шариков.<br />
*'''Мин.радиус шариков''' - Мин.размер шариков во время "взрыва".<br />
*'''Макс.радиус шариков''' - Макс.размер шариков во время "взрыва".<br />
*'''Ширина шариков''' - Ширина шариков на поле. Вычисляется по формуле (2R+2).<br />
*'''Высота шариков''' - Высота шариков на поле. Вычисляется по формуле (2R-2).<br />
*'''номер фрейма графики шариков''' - (clip_frame) Номер фрейма в клипе графики шариков.<br />
*'''Мин.энергия''' - Мин.энергия выстрела. (или что-то в этом духе, более точной информацией обладает только создатель оригинального кода баббла)<br />
*'''Макс.энергия''' - Макс.энергия выстрела.<br />
*'''убирать выбитый цвет из пушки''' - (fbub1) Убирать выбитый цвет из пушки (нет=0, да=1).<br />
*'''Уровень''' - Уровень игры: новичок, любитель, эксперт, мастер, кастомный (настройки уровня сложности зависят от параметров заданных в добавляемом поле "уровень сложности")<br />
*'''Вид игры''' - Режим игры: аркада, стратегия. Режим Аркада был создан для моды "битва", в котором предусматривалось добавление доп.рядов через определенное время бездействия игрока.<br />
[[Файл:02-01-2014 10-04-52.png|250px|thumb|right]]<br />
*'''Начальные шаги до наезда''' - Количество шагов через которое поле "накажет" игрока дополнительными рядами.<br />
*'''Промежутки добавления''' - Время через которое будут добавляться следующий ряд (в режиме Аркада).<br />
*'''Добавление рядов''' - Разрешить добавление рядов. Иначе только извне. Целесообразно использовать в снукере.<br />
*'''Тип досыпания''' - Тип досыпания шариков. Снукер или классический бабблшутер.<br />
*'''подтип классического досыпания''' - (addrowt) Вид классического досыпания шариков (нормальное=0,с заполнениями пустот=1).<br />
*'''Обваливать висячие''' - Обваливать висячие шарики (да/нет). Отключение этого параметра используется в игре снукер.<br />
*'''Отскок от потолка''' - Название говорит само за себя. Используется в снукере.<br />
*'''Файл-описание уровня''' - Файл формата .xml в котором будет построены уровни для игры. Пример приведен справа.<br />
*'''Номер уровня в файле''' - Стартовый уровень, с которого будет начинаться игра.<br />
*'''матч по цифрам''' - (nummatch) Матч по цифрам (нет=0, да=1).<br />
*'''multColor''' - (multColor) умножать число сматченых шариков на номер цвета при подсчете очков (нет=0, да=1).<br />
*'''removeDropWait''' - (removeDropWait) <br />
*'''объект подложки''' - (objback) Объект подлжоки, которой будет передана графика и состояни выстрела и его окончания.<br />
*'''включить анти-чит''' - (anti_cheat) Включить проверку на чит (нет=0, да=1).<br />
*'''собирать статистику''' - (collec_stat) Включить сбор статистики (нет=0, да=1).<br />
*'''складывать строки''' - (is_summing) Включить сбор статистики (нет=0, да=1).Складывать ли наезжающие строки при выбивании нескольких цветов.<br />
<br />
=настройки Lost Numbers=<br />
*'''время перекрашивания''' - (lnreptm)<br />
*'''макс скейл перекрашивания''' - (lnrepmaxsc)<br />
*'''перекрашивать сразу''' - (lnrepimm) нет=0, да=1<br />
<br />
<br />
=Параметры бомб=<br />
===Мина===<br />
[[Файл:02-01-2014 13-37-11.png|250px|thumb|right]]<br />
*'''res''' - Графический ресурс мины в пушке.<br />
*'''res1''' - Графический ресурс мины в полете.<br />
*'''подложка''' - (bomb1bg) Графический ресурс для подложки бомбы (взрыв по радиусу).<br />
*'''Вероятность''' - Вероятность появления данной бомбы.<br />
*'''Скип''' - Количество пропущенных первых шагов для появления бомбы (не реализовано).<br />
*'''Количество''' - Количество появления бомбы за одну игровую сессию.<br />
*'''Шаги''' - Количество шагов до появления данной бомбы.<br />
*'''Шаги ok''' - Количество удачных шагов до появления бомбы.<br />
*'''Шаги miss''' - Количество неудачных шагов до появления бомбы.<br />
*'''n1''' - Минимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''n2''' - Максимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''Радиус''' - Радиус взрыва данной бомбы<br />
*'''Эффект''' - Эффект на месте взрыва бомбы. Объект должен иметь состояние beg.<br />
<br />
===Цвет===<br />
*'''res''' - Графический ресурс бомбы-цвет в пушке.<br />
*'''res1''' - Графический ресурс бомбы-цвет в полете.<br />
*'''подложка''' - (bomb2bg) Графический ресурс для подложки бомбы 2 (взрыв шариков одного цвета).<br />
*'''Вероятность''' - Вероятность появления данной бомбы.<br />
*'''Скип''' - Количество пропущенных первых шагов для появления бомбы (не реализовано).<br />
*'''Количество''' - Количество появления бомбы за одну игровую сессию.<br />
*'''Шаги''' - Количество шагов до появления данной бомбы.<br />
*'''Шаги ok''' - Количество удачных шагов до появления бомбы.<br />
*'''Шаги miss''' - Количество неудачных шагов до появления бомбы.<br />
*'''n1''' - Минимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''n2''' - Максимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
<br />
===Ядро===<br />
*'''res''' - Графический ресурс ядра в пушке.<br />
*'''res1''' - Графический ресурс ядра в полете.<br />
*'''подложка''' - (bomb3bg) Графический ресурс для подложки бомбы 3 (летит и взрывает все вокруг себя).<br />
*'''Вероятность''' - Вероятность появления данной бомбы.<br />
*'''Скип''' - Количество пропущенных первых шагов для появления бомбы (не реализовано).<br />
*'''Количество''' - Количество появления бомбы за одну игровую сессию.<br />
*'''Шаги''' - Количество шагов до появления данной бомбы.<br />
*'''Шаги ok''' - Количество удачных шагов до появления бомбы.<br />
*'''Шаги miss''' - Количество неудачных шагов до появления бомбы.<br />
*'''n1''' - Минимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''n2''' - Максимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''Флайер''' - Флайер летящий под бомбочкой.<br />
*'''Флайер 2''' - Флайер летящий под бомбочкой.<br />
*'''Скорость''' - Скорость перемещения бомбочки.<br />
*'''Число отскоков''' - Число отскоков от стен для бомбочки.<br />
<br />
=Звуки=<br />
*'''shot''' - Звук выстрела.<br />
*'''fail''' - Звук промаха.<br />
*'''explosion''' - Звук взрыва шариков.<br />
*'''intro''' - Звук в начале игры.<br />
*'''game over''' - Звук окончания игры.<br />
*'''bomb mine''' - Звук выстрела бомбы "мина".<br />
*'''bomb bullet''' - Звук выстрела бомбы "ядро".<br />
*'''bomb color''' - Звук выстрела бомбы "цвет".<br />
*'''Взрыв бомбы мина''' - Говорит само за себя.<br />
*'''Взрыв бомбы ядро''' - Говорит само за себя.<br />
*'''Взрыв бомбы цвет''' - Говорит само за себя.<br />
<br />
<br />
=Очковая система=<br />
*'''Тип''' - ''classic'', ''lostnumbers'', ''nightopera''<br />
*'''коеф для матча''' - (match_coef) коэффициент очков для матча.<br />
*'''коеф для обвала''' - (drop_coef) коэффициент очков для обвала.<br />
*'''Визуализатор шагов''' - счетчик, прогресс, которые отображает оставшееся количество шагов до "наезда".<br />
*'''Визуализатор последних очков''' - счетчик, таймер, прогресс последних очков.<br />
*'''Аниматор последних очков''' - машина со счетчиком (подобъектом), которая запускается в месте попадания шарика. Должна иметь состояние ''show''.<br />
*'''Тип подсчета''' - очки могут считаться как: 1) количество сматченных шариков * на kBub; 2) сумма порядковых номеров (сматчили 4 шарика -> очки = 1+2+3+4)<br />
*'''kBub''' - коэффициент за сматченные шарики.<br />
*'''kCmb''' - коэффициент за комбо.<br />
*'''kMov''' - коэффициент за оставшиеся ходы.<br />
*'''kTim''' - коэффициент за оставшиеся секунды.<br />
*'''kPst''' - коэффициент за удаленные с поля вредители.<br />
*'''kSnw''' - коэффициент за удаленные с поля снежинки.<br />
<br />
= Состояния =<br />
*'''pause''' - перевести объект в паузу; <br />
*'''resume''' - вытащить объект из паузы;<br />
*'''hint''' - выполнить хинт ( нужно в поле hntt указать номер хинта);<br />
*'''gover''' - <br />
*'''game_continue''' - продолжить игру (например, в случае, когда мы проиграли, но даем игроку шанс, убрав несколько нижних линий);<br />
*'''game_lose''' - задекларировать проигрыш (например, когда мы проиграли, и игрок отказался от шанса продолжить игру);<br />
*'''cur_on''' - отображать траекторию при прицеливании;<br />
*'''cur_off''' - убрать траекторию при прицеливании;<br />
*'''fbubswap''' - поменять местами шарики в пушке;<br />
*'''del_bottom''' - удалить несколько (задается параметром) нижних рядов;<br />
*'''effdigsc2''' - <br />
*'''update_params''' - обновить параметры объекта(пока только номер фрейма клипа шариков);<br />
*'''reset_game''' - сбросит игру , которая сохранена в опциях;<br />
*'''send_stat''' - отправить статистику.<br />
<br />
<br />
<br />
<br />
=Добавляемые параметры=<br />
<br />
===[[Файл:+.png]] Графический ресурс===<br />
*'''Клип''' - Графический ресурс, перетаскивается из редактора ресурсов.<br />
*'''Номер цвета''' - Номер цвета, который будет соответствовать значению цвета в файле-уровня.<br />
<br />
<br />
===[[Файл:+.png]] Ресурсы функциональных шариков===<br />
[[Файл:03-02-2014 10-35-45.png|200px|thumb|right]]<br />
*'''Функционал''' - Записываем значение чудо-шарика из файла-настроек.<br />
*'''Клип''' - Графический ресурс шариков, обладающих данным функционалом.<br />
*'''Звук''' - Звук шарика, обладающего данным функционалом.<br />
*'''Эффект''' - Машина/Патикл обладающие состоянием beg.<br />
<br />
<br />
===[[Файл:+.png]] Параметры анимации для шарика лунка===<br />
*'''Время перемещения''' - время движения шарика в центр лунки.<br />
*'''Время исчезновения''' - время исчезновения шарика в лунке (скейл).<br />
*'''Время жизни''' - время жизни эффекта.<br />
<br />
<br />
===[[Файл:+.png]] Параметры анимации для шарика колючка===<br />
*'''Время жизни''' - время жизни эффекта.<br />
<br />
<br />
===[[Файл:+.png]] Параметры анимации для шарика снежинка===<br />
*'''Время жизни''' - время жизни эффекта.<br />
<br />
<br />
===[[Файл:+.png]] Параметры анимации для шарика вредитель===<br />
*'''Время жизни''' - время жизни эффекта.<br />
*'''Время ожидания скина''' - время, пока поменяется скин шарика.<br />
*'''Эффект''' - эффект, возникающий в момент обрастания вредителя снежинками.<br />
<br />
<br />
===[[Файл:+.png]] Физика===<br />
[[Файл:02-01-2014 13-57-15.png|250px|thumb|right]]<br />
*'''Справа находится пример настроек физики для шариков радиусом 24.'''<br />
*'''Move''' - Коэффициент отталкивания летящего шарика.<br />
*'''MinDest2''' - Квадрат минимального расстояния, когда шарик считается в покое.<br />
*'''MinVel2''' - Квадрат минимальной скорости, когда шарик считается в покое.<br />
*'''Down''' - Трение.<br />
*'''MaxVel''' - Максимальная скорость колебаний.<br />
*'''Elast''' - Эластичность с-мы (коэффициент для сил действующих между соседними шариками).<br />
*'''Glue''' - Коэффициент притяжения шарика к центру ячейки.<br />
*'''MoveC''' - Радиус действия летящего шарика в ячейках.<br />
*'''BangVel''' - Приращение для скорости взрыва.<br />
<br />
<br />
===[[Файл:+.png]] параметры хинта бомба===<br />
*'''res''' - (res) Графический ресурс для бомбочки.<br />
*'''радиус''' - (r) Радиус действия бомбочки (взрывает шарики в пределах этого радиуса).<br />
<br />
<br />
===[[Файл:+.png]] параметры хинта бомба удаляющая цвет к которому коснулась при выстреле===<br />
*'''res''' - (res) Графический ресурс для бомбочки.<br />
<br />
===[[Файл:+.png]] Уровень сложности===<br />
''Название параметров говорит само за себя. Создавать их можно бесконечное множество, главное не забывать назначать им порядковые номера в поле "уровень" по мере добавления новых уровней. Количество уровней сложности внутри объекта должно соответствовать количеству уровней сложности у необходимого Вам монстра. Количество цветов заданное в файле-настройках .xml имеет приоритет над теми, что мы задаем в объекте.''<br />
*'''Уровень''' - номер уровня.<br />
*'''Кол-во цветов''' - число цветов на поле.<br />
*'''Шаги до наезда''' - число шагов до наезда.<br />
*'''Бомба мина: вероятность''' - вероятность появления мины в процентах.<br />
*'''Бомба мина: радиус''' - радиус мины в шариках.<br />
*'''Бомба ядро:вероятность''' - вероятность появления ядра в процентах.<br />
*'''Бомба ядро: число отскоков от стен''' - число отскоков ядра от стен поля.<br />
*'''Бомба цвет: количество''' - число бомб-цвет, которые появятся на уровне.<br />
*'''Бомба цвет: шаги''' - число шагов вначале уровня до появления бомбы-цвет.<br />
<br />
<br />
===[[Файл:+.png]] Визуализатор общих очков===<br />
*'''Объект''' - счетчик, прогресс, показывающий сумму очков за уровень.<br />
<br />
<br />
===[[Файл:+.png]] Игра выиграна: изменить состояние объекта===<br />
*'''Объект''' - объект, состояние которого меняем при выигрыше.<br />
*'''Состояние''' - новое состояние объекта.<br />
<br />
<br />
===[[Файл:+.png]] Игра выиграна: изменить параметр объекта===<br />
*'''Объект''' - объект, параметр которого меняем при выигрыше.<br />
*'''Параметр''' - параметр, который меняем.<br />
*'''Значение''' - новое значение параметра.<br />
<br />
<br />
===[[Файл:+.png]] Игра проиграна: изменить состояние объекта===<br />
*'''Объект''' - объект, состояние которого меняем при проигрыше.<br />
*'''Состояние''' - новое состояние объекта.<br />
<br />
===[[Файл:+.png]] Игра проиграна: изменить параметр объекта===<br />
*'''Объект''' - объект, параметр которого меняем при проигрыше.<br />
*'''Параметр''' - параметр, который меняем.<br />
*'''Значение''' - новое значение параметра.<br />
<br />
<br />
===[[Файл:+.png]] Выбили цвет: изменить состояние объекта===<br />
*'''Объект''' - объект, состояние которого меняем при удалении цвета с поля. При этом BSh передает указанному объекту параметр ''param_removed_colors'' со значением количества выбитых цветов за данный ход.<br />
*'''Состояние''' - новое состояние объекта.<br />
<br />
=Хинты=<br />
*'''Замена шарика''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=0, после чего передать состояние hint.<br />
*'''Удаление цвета''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=5, после чего передать состояние hint.<br />
*'''Ядро''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=3, после чего передать состояние hint.<br />
*'''Мина''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=1, после чего передать состояние hint.<br />
*'''Курсор''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=0, после чего передать состояние cur_on. После выстрела курсор исчезает.<br />
<br />
<br />
=Пример проекта=<br />
S:\!MOBILE\!!!EditorGames\Wiki_sample\bubble_snooker_graphprogress.zip<br />
<br />
<br />
=Пример реализации: задание уровня=<br />
<br />
::'''1)''' Если нам необходимо задать уровень шутеру прямиком из экрана где он находиться, и при этом он уже запустился (прорисовалась графика). То с начало мы должны передать ему состояние end, после чего задать необходимый уровень и переинитить сцену на которой он находиться (желательно чтобы на этой сцене был только шутер):<br />
<br />
[[Файл:Bubble change level.png|centre]]<br />
<br />
<br />
::'''2)''' Если же, мы задаем нужный уровень удалённо ( с другого экрана), то мы расшариваем экран с самим шутером на сцену где будем задавать ему новый уровень. И на том экране (удалённом) задаём шутеру нужный уровень (levelNum). <br />
<br />
[[Category:Game mechanic]]</div>Iskoroboghttps://wiki.appsalutecreator.com/index.php?title=Bubble_Shooter&diff=8616Bubble Shooter2017-03-15T08:26:15Z<p>Iskorobog: /* Добавляемые параметры */</p>
<hr />
<div>{{TOC right}}<br />
Игровая механика BubbleShooter.<br />
<br />
=BubbleShooter Setup=<br />
'''Общие настройки'''<br />
*''' память''' - (memo) Если 1, то при повторном открытии экрана объект не обновляет свои параметры (помнит текущие параметры, оставшиеся от предыдущего посещения экрана)<br />
*'''res''' - графичесий ресурс поля для игры. Его размер является зоной для тапа.<br />
*'''Слушатель''' - объект типа Matchbattle.<br />
<br />
'''Группа - Сохранения'''<br />
*'''нужны''' - если '''да''', то сохраняет результаты игры в опции.<br />
*'''сохранять глобально''' - (prof) Если ==0, то значение будет сохранено в текущий профиль, если 1 - то глобально.<br />
*'''место''' - место в опциях, куда сохраняются данные игры.<br />
*'''флаг старых сейвов''' - (old_records) Место в опциях, куда пишем флаг 1 , когда считали и отправили сейвы со старого бабл шутера<br />
<br />
<br />
=Графика=<br />
*'''красные шарики''' - графический ресурс шарика данного цвета.<br />
*'''зеленые шарики''' - графический ресурс шарика данного цвета.<br />
*'''синие шарики''' - графический ресурс шарика данного цвета.<br />
*'''желтые шарики''' - графический ресурс шарика данного цвета.<br />
*'''голубые шарики''' - графический ресурс шарика данного цвета.<br />
*'''пурпурные шарики''' - графический ресурс шарика данного цвета.<br />
<br />
<br />
=Прицел=<br />
*'''res''' - Графический ресурс прицела, перетаскивается из редактора ресурсов.<br />
*'''Время''' - Время от нажатия до момента появления прицела.<br />
*'''Время перед мувом''' - Время от нажатия до момента появления прицела в движении.<br />
*'''Смещение''' - Расстояние между пальцем и центром прицела.<br />
<br />
<br />
=Курсор=<br />
*'''res''' - Графический ресурс курсора, перетаскивается из редактора ресурсов.<br />
*'''Кол-во шариков''' - количество шариков в курсоре.<br />
*'''Отражения''' - максимальное кол-во отражений от стенок.<br />
*'''минимальный скейл''' - (curminsc) минимальный скейл графики шариков<br />
*'''максимальный скейл''' - (curmaxsc) максимальный скейл графики шариков<br />
*'''время скалирования''' - (cursctm) время скалирования шариков<br />
<br />
<br />
=Эффекты=<br />
*'''Удар бомбы об гвоздь''' - объект, запускаемый на месте удара бомбы об гвоздь.<br />
*'''Удар шара об гвоздь''' - объект, запускаемый на месте удара шарика об гвоздь.<br />
*'''Очки в намберсах''' - объект, запускаемый в месте лопанья шариков.<br />
*'''Очки в намберсах 2''' - объект с финальными очками, летящими в цель.<br />
<br />
<br />
=Слушатели=<br />
*'''Выстрел''' - объект, которому передаются нижеследующие состояния при выстреле из пушки. Состояния: '''shot''' - выстрел обычным шариком, '''mine''' - выстрел миной, '''color''' - выстрел цветной бомбой, '''bullet''' - выстрел бомбой-ядром.<br />
<br />
<br />
=Настройки=<br />
[[Файл:02-01-2014 13-40-18.png|250px|thumb|right]]<br />
*'''Позиция стреляющего''' - Позиция стреляющего шарика (x;y)<br />
*'''Расстояние от следующего''' - Расстояние от стреляющего шарика до следующего за ним.<br />
*'''Высота физической сетки''' - Высота физической сетки поля.<br />
*'''Ширина физической сетки''' - Ширина физической сетки поля.<br />
*'''Смещение''' - Смешение поля относительно начала координат родителя.<br />
*'''Радиус шариков''' - Радиус шариков.<br />
*'''Мин.радиус шариков''' - Мин.размер шариков во время "взрыва".<br />
*'''Макс.радиус шариков''' - Макс.размер шариков во время "взрыва".<br />
*'''Ширина шариков''' - Ширина шариков на поле. Вычисляется по формуле (2R+2).<br />
*'''Высота шариков''' - Высота шариков на поле. Вычисляется по формуле (2R-2).<br />
*'''номер фрейма графики шариков''' - (clip_frame) Номер фрейма в клипе графики шариков.<br />
*'''Мин.энергия''' - Мин.энергия выстрела. (или что-то в этом духе, более точной информацией обладает только создатель оригинального кода баббла)<br />
*'''Макс.энергия''' - Макс.энергия выстрела.<br />
*'''убирать выбитый цвет из пушки''' - (fbub1) Убирать выбитый цвет из пушки (нет=0, да=1).<br />
*'''Уровень''' - Уровень игры: новичок, любитель, эксперт, мастер, кастомный (настройки уровня сложности зависят от параметров заданных в добавляемом поле "уровень сложности")<br />
*'''Вид игры''' - Режим игры: аркада, стратегия. Режим Аркада был создан для моды "битва", в котором предусматривалось добавление доп.рядов через определенное время бездействия игрока.<br />
[[Файл:02-01-2014 10-04-52.png|250px|thumb|right]]<br />
*'''Начальные шаги до наезда''' - Количество шагов через которое поле "накажет" игрока дополнительными рядами.<br />
*'''Промежутки добавления''' - Время через которое будут добавляться следующий ряд (в режиме Аркада).<br />
*'''Добавление рядов''' - Разрешить добавление рядов. Иначе только извне. Целесообразно использовать в снукере.<br />
*'''Тип досыпания''' - Тип досыпания шариков. Снукер или классический бабблшутер.<br />
*'''подтип классического досыпания''' - (addrowt) Вид классического досыпания шариков (нормальное=0,с заполнениями пустот=1).<br />
*'''Обваливать висячие''' - Обваливать висячие шарики (да/нет). Отключение этого параметра используется в игре снукер.<br />
*'''Отскок от потолка''' - Название говорит само за себя. Используется в снукере.<br />
*'''Файл-описание уровня''' - Файл формата .xml в котором будет построены уровни для игры. Пример приведен справа.<br />
*'''Номер уровня в файле''' - Стартовый уровень, с которого будет начинаться игра.<br />
*'''матч по цифрам''' - (nummatch) Матч по цифрам (нет=0, да=1).<br />
*'''multColor''' - (multColor) умножать число сматченых шариков на номер цвета при подсчете очков (нет=0, да=1).<br />
*'''removeDropWait''' - (removeDropWait) <br />
*'''объект подложки''' - (objback) Объект подлжоки, которой будет передана графика и состояни выстрела и его окончания.<br />
*'''включить анти-чит''' - (anti_cheat) Включить проверку на чит (нет=0, да=1).<br />
*'''собирать статистику''' - (collec_stat) Включить сбор статистики (нет=0, да=1).<br />
*'''складывать строки''' - (is_summing) Включить сбор статистики (нет=0, да=1).Складывать ли наезжающие строки при выбивании нескольких цветов.<br />
<br />
=настройки Lost Numbers=<br />
*'''время перекрашивания''' - (lnreptm)<br />
*'''макс скейл перекрашивания''' - (lnrepmaxsc)<br />
*'''перекрашивать сразу''' - (lnrepimm) нет=0, да=1<br />
<br />
<br />
=Параметры бомб=<br />
===Мина===<br />
[[Файл:02-01-2014 13-37-11.png|250px|thumb|right]]<br />
*'''res''' - Графический ресурс мины в пушке.<br />
*'''res1''' - Графический ресурс мины в полете.<br />
*'''подложка''' - (bomb1bg) Графический ресурс для подложки бомбы (взрыв по радиусу).<br />
*'''Вероятность''' - Вероятность появления данной бомбы.<br />
*'''Скип''' - Количество пропущенных первых шагов для появления бомбы (не реализовано).<br />
*'''Количество''' - Количество появления бомбы за одну игровую сессию.<br />
*'''Шаги''' - Количество шагов до появления данной бомбы.<br />
*'''Шаги ok''' - Количество удачных шагов до появления бомбы.<br />
*'''Шаги miss''' - Количество неудачных шагов до появления бомбы.<br />
*'''n1''' - Минимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''n2''' - Максимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''Радиус''' - Радиус взрыва данной бомбы<br />
*'''Эффект''' - Эффект на месте взрыва бомбы. Объект должен иметь состояние beg.<br />
<br />
===Цвет===<br />
*'''res''' - Графический ресурс бомбы-цвет в пушке.<br />
*'''res1''' - Графический ресурс бомбы-цвет в полете.<br />
*'''подложка''' - (bomb2bg) Графический ресурс для подложки бомбы 2 (взрыв шариков одного цвета).<br />
*'''Вероятность''' - Вероятность появления данной бомбы.<br />
*'''Скип''' - Количество пропущенных первых шагов для появления бомбы (не реализовано).<br />
*'''Количество''' - Количество появления бомбы за одну игровую сессию.<br />
*'''Шаги''' - Количество шагов до появления данной бомбы.<br />
*'''Шаги ok''' - Количество удачных шагов до появления бомбы.<br />
*'''Шаги miss''' - Количество неудачных шагов до появления бомбы.<br />
*'''n1''' - Минимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''n2''' - Максимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
<br />
===Ядро===<br />
*'''res''' - Графический ресурс ядра в пушке.<br />
*'''res1''' - Графический ресурс ядра в полете.<br />
*'''подложка''' - (bomb3bg) Графический ресурс для подложки бомбы 3 (летит и взрывает все вокруг себя).<br />
*'''Вероятность''' - Вероятность появления данной бомбы.<br />
*'''Скип''' - Количество пропущенных первых шагов для появления бомбы (не реализовано).<br />
*'''Количество''' - Количество появления бомбы за одну игровую сессию.<br />
*'''Шаги''' - Количество шагов до появления данной бомбы.<br />
*'''Шаги ok''' - Количество удачных шагов до появления бомбы.<br />
*'''Шаги miss''' - Количество неудачных шагов до появления бомбы.<br />
*'''n1''' - Минимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''n2''' - Максимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''Флайер''' - Флайер летящий под бомбочкой.<br />
*'''Флайер 2''' - Флайер летящий под бомбочкой.<br />
*'''Скорость''' - Скорость перемещения бомбочки.<br />
*'''Число отскоков''' - Число отскоков от стен для бомбочки.<br />
<br />
=Звуки=<br />
*'''shot''' - Звук выстрела.<br />
*'''fail''' - Звук промаха.<br />
*'''explosion''' - Звук взрыва шариков.<br />
*'''intro''' - Звук в начале игры.<br />
*'''game over''' - Звук окончания игры.<br />
*'''bomb mine''' - Звук выстрела бомбы "мина".<br />
*'''bomb bullet''' - Звук выстрела бомбы "ядро".<br />
*'''bomb color''' - Звук выстрела бомбы "цвет".<br />
*'''Взрыв бомбы мина''' - Говорит само за себя.<br />
*'''Взрыв бомбы ядро''' - Говорит само за себя.<br />
*'''Взрыв бомбы цвет''' - Говорит само за себя.<br />
<br />
<br />
=Очковая система=<br />
*'''Тип''' - ''classic'', ''lostnumbers'', ''nightopera''<br />
*'''коеф для матча''' - (match_coef) коэффициент очков для матча.<br />
*'''коеф для обвала''' - (drop_coef) коэффициент очков для обвала.<br />
*'''Визуализатор шагов''' - счетчик, прогресс, которые отображает оставшееся количество шагов до "наезда".<br />
*'''Визуализатор последних очков''' - счетчик, таймер, прогресс последних очков.<br />
*'''Аниматор последних очков''' - машина со счетчиком (подобъектом), которая запускается в месте попадания шарика. Должна иметь состояние ''show''.<br />
*'''Тип подсчета''' - очки могут считаться как: 1) количество сматченных шариков * на kBub; 2) сумма порядковых номеров (сматчили 4 шарика -> очки = 1+2+3+4)<br />
*'''kBub''' - коэффициент за сматченные шарики.<br />
*'''kCmb''' - коэффициент за комбо.<br />
*'''kMov''' - коэффициент за оставшиеся ходы.<br />
*'''kTim''' - коэффициент за оставшиеся секунды.<br />
*'''kPst''' - коэффициент за удаленные с поля вредители.<br />
*'''kSnw''' - коэффициент за удаленные с поля снежинки.<br />
<br />
= Состояния =<br />
*'''pause''' - перевести объект в паузу; <br />
*'''resume''' - вытащить объект из паузы;<br />
*'''hint''' - выполнить хинт ( нужно в поле hntt указать номер хинта);<br />
*'''gover''' - <br />
*'''game_continue''' - продолжить игру (например, в случае, когда мы проиграли, но даем игроку шанс, убрав несколько нижних линий);<br />
*'''game_lose''' - задекларировать проигрыш (например, когда мы проиграли, и игрок отказался от шанса продолжить игру);<br />
*'''cur_on''' - отображать траекторию при прицеливании;<br />
*'''cur_off''' - убрать траекторию при прицеливании;<br />
*'''fbubswap''' - поменять местами шарики в пушке;<br />
*'''del_bottom''' - удалить несколько (задается параметром) нижних рядов;<br />
*'''effdigsc2''' - <br />
*'''update_params''' - обновить параметры объекта(пока только номер фрейма клипа шариков);<br />
*'''reset_game''' - сбросит игру , которая сохранена в опциях;<br />
*'''send_stat''' - отправить статистику.<br />
<br />
<br />
<br />
<br />
=Добавляемые параметры=<br />
<br />
===[[Файл:+.png]] Графический ресурс===<br />
*'''Клип''' - Графический ресурс, перетаскивается из редактора ресурсов.<br />
*'''Номер цвета''' - Номер цвета, который будет соответствовать значению цвета в файле-уровня.<br />
<br />
<br />
===[[Файл:+.png]] Ресурсы функциональных шариков===<br />
[[Файл:03-02-2014 10-35-45.png|200px|thumb|right]]<br />
*'''Функционал''' - Записываем значение чудо-шарика из файла-настроек.<br />
*'''Клип''' - Графический ресурс шариков, обладающих данным функционалом.<br />
*'''Звук''' - Звук шарика, обладающего данным функционалом.<br />
*'''Эффект''' - Машина/Патикл обладающие состоянием beg.<br />
<br />
<br />
===[[Файл:+.png]] Параметры анимации для шарика лунка===<br />
*'''Время перемещения''' - время движения шарика в центр лунки.<br />
*'''Время исчезновения''' - время исчезновения шарика в лунке (скейл).<br />
*'''Время жизни''' - время жизни эффекта.<br />
<br />
<br />
===[[Файл:+.png]] Параметры анимации для шарика колючка===<br />
*'''Время жизни''' - время жизни эффекта.<br />
<br />
<br />
===[[Файл:+.png]] Параметры анимации для шарика снежинка===<br />
*'''Время жизни''' - время жизни эффекта.<br />
<br />
<br />
===[[Файл:+.png]] Параметры анимации для шарика вредитель===<br />
*'''Время жизни''' - время жизни эффекта.<br />
*'''Время ожидания скина''' - время, пока поменяется скин шарика.<br />
*'''Эффект''' - эффект, возникающий в момент обрастания вредителя снежинками.<br />
<br />
<br />
===[[Файл:+.png]] Физика===<br />
[[Файл:02-01-2014 13-57-15.png|250px|thumb|right]]<br />
*'''Справа находится пример настроек физики для шариков радиусом 24.'''<br />
*'''Move''' - Коэффициент отталкивания летящего шарика.<br />
*'''MinDest2''' - Квадрат минимального расстояния, когда шарик считается в покое.<br />
*'''MinVel2''' - Квадрат минимальной скорости, когда шарик считается в покое.<br />
*'''Down''' - Трение.<br />
*'''MaxVel''' - Максимальная скорость колебаний.<br />
*'''Elast''' - Эластичность с-мы (коэффициент для сил действующих между соседними шариками).<br />
*'''Glue''' - Коэффициент притяжения шарика к центру ячейки.<br />
*'''MoveC''' - Радиус действия летящего шарика в ячейках.<br />
*'''BangVel''' - Приращение для скорости взрыва.<br />
<br />
<br />
===[[Файл:+.png]] параметры хинта бомба===<br />
*'''res''' - (res) Графический ресурс для бомбочки.<br />
*'''радиус''' - (r) Радиус действия бомбочки (взрывает шарики в пределах этого радиуса).<br />
<br />
<br />
===[[Файл:+.png]] параметры хинта бомба удаляющая цвет к которому коснулась при выстреле===<br />
<br />
<br />
===[[Файл:+.png]] Уровень сложности===<br />
''Название параметров говорит само за себя. Создавать их можно бесконечное множество, главное не забывать назначать им порядковые номера в поле "уровень" по мере добавления новых уровней. Количество уровней сложности внутри объекта должно соответствовать количеству уровней сложности у необходимого Вам монстра. Количество цветов заданное в файле-настройках .xml имеет приоритет над теми, что мы задаем в объекте.''<br />
*'''Уровень''' - номер уровня.<br />
*'''Кол-во цветов''' - число цветов на поле.<br />
*'''Шаги до наезда''' - число шагов до наезда.<br />
*'''Бомба мина: вероятность''' - вероятность появления мины в процентах.<br />
*'''Бомба мина: радиус''' - радиус мины в шариках.<br />
*'''Бомба ядро:вероятность''' - вероятность появления ядра в процентах.<br />
*'''Бомба ядро: число отскоков от стен''' - число отскоков ядра от стен поля.<br />
*'''Бомба цвет: количество''' - число бомб-цвет, которые появятся на уровне.<br />
*'''Бомба цвет: шаги''' - число шагов вначале уровня до появления бомбы-цвет.<br />
<br />
<br />
===[[Файл:+.png]] Визуализатор общих очков===<br />
*'''Объект''' - счетчик, прогресс, показывающий сумму очков за уровень.<br />
<br />
<br />
===[[Файл:+.png]] Игра выиграна: изменить состояние объекта===<br />
*'''Объект''' - объект, состояние которого меняем при выигрыше.<br />
*'''Состояние''' - новое состояние объекта.<br />
<br />
<br />
===[[Файл:+.png]] Игра выиграна: изменить параметр объекта===<br />
*'''Объект''' - объект, параметр которого меняем при выигрыше.<br />
*'''Параметр''' - параметр, который меняем.<br />
*'''Значение''' - новое значение параметра.<br />
<br />
<br />
===[[Файл:+.png]] Игра проиграна: изменить состояние объекта===<br />
*'''Объект''' - объект, состояние которого меняем при проигрыше.<br />
*'''Состояние''' - новое состояние объекта.<br />
<br />
===[[Файл:+.png]] Игра проиграна: изменить параметр объекта===<br />
*'''Объект''' - объект, параметр которого меняем при проигрыше.<br />
*'''Параметр''' - параметр, который меняем.<br />
*'''Значение''' - новое значение параметра.<br />
<br />
<br />
===[[Файл:+.png]] Выбили цвет: изменить состояние объекта===<br />
*'''Объект''' - объект, состояние которого меняем при удалении цвета с поля. При этом BSh передает указанному объекту параметр ''param_removed_colors'' со значением количества выбитых цветов за данный ход.<br />
*'''Состояние''' - новое состояние объекта.<br />
<br />
=Хинты=<br />
*'''Замена шарика''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=0, после чего передать состояние hint.<br />
*'''Удаление цвета''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=5, после чего передать состояние hint.<br />
*'''Ядро''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=3, после чего передать состояние hint.<br />
*'''Мина''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=1, после чего передать состояние hint.<br />
*'''Курсор''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=0, после чего передать состояние cur_on. После выстрела курсор исчезает.<br />
<br />
<br />
=Пример проекта=<br />
S:\!MOBILE\!!!EditorGames\Wiki_sample\bubble_snooker_graphprogress.zip<br />
<br />
<br />
=Пример реализации: задание уровня=<br />
<br />
::'''1)''' Если нам необходимо задать уровень шутеру прямиком из экрана где он находиться, и при этом он уже запустился (прорисовалась графика). То с начало мы должны передать ему состояние end, после чего задать необходимый уровень и переинитить сцену на которой он находиться (желательно чтобы на этой сцене был только шутер):<br />
<br />
[[Файл:Bubble change level.png|centre]]<br />
<br />
<br />
::'''2)''' Если же, мы задаем нужный уровень удалённо ( с другого экрана), то мы расшариваем экран с самим шутером на сцену где будем задавать ему новый уровень. И на том экране (удалённом) задаём шутеру нужный уровень (levelNum). <br />
<br />
[[Category:Game mechanic]]</div>Iskoroboghttps://wiki.appsalutecreator.com/index.php?title=Bubble_Shooter&diff=8615Bubble Shooter2017-03-15T08:25:14Z<p>Iskorobog: /* Файл:+.png параметры хинта бомба */</p>
<hr />
<div>{{TOC right}}<br />
Игровая механика BubbleShooter.<br />
<br />
=BubbleShooter Setup=<br />
'''Общие настройки'''<br />
*''' память''' - (memo) Если 1, то при повторном открытии экрана объект не обновляет свои параметры (помнит текущие параметры, оставшиеся от предыдущего посещения экрана)<br />
*'''res''' - графичесий ресурс поля для игры. Его размер является зоной для тапа.<br />
*'''Слушатель''' - объект типа Matchbattle.<br />
<br />
'''Группа - Сохранения'''<br />
*'''нужны''' - если '''да''', то сохраняет результаты игры в опции.<br />
*'''сохранять глобально''' - (prof) Если ==0, то значение будет сохранено в текущий профиль, если 1 - то глобально.<br />
*'''место''' - место в опциях, куда сохраняются данные игры.<br />
*'''флаг старых сейвов''' - (old_records) Место в опциях, куда пишем флаг 1 , когда считали и отправили сейвы со старого бабл шутера<br />
<br />
<br />
=Графика=<br />
*'''красные шарики''' - графический ресурс шарика данного цвета.<br />
*'''зеленые шарики''' - графический ресурс шарика данного цвета.<br />
*'''синие шарики''' - графический ресурс шарика данного цвета.<br />
*'''желтые шарики''' - графический ресурс шарика данного цвета.<br />
*'''голубые шарики''' - графический ресурс шарика данного цвета.<br />
*'''пурпурные шарики''' - графический ресурс шарика данного цвета.<br />
<br />
<br />
=Прицел=<br />
*'''res''' - Графический ресурс прицела, перетаскивается из редактора ресурсов.<br />
*'''Время''' - Время от нажатия до момента появления прицела.<br />
*'''Время перед мувом''' - Время от нажатия до момента появления прицела в движении.<br />
*'''Смещение''' - Расстояние между пальцем и центром прицела.<br />
<br />
<br />
=Курсор=<br />
*'''res''' - Графический ресурс курсора, перетаскивается из редактора ресурсов.<br />
*'''Кол-во шариков''' - количество шариков в курсоре.<br />
*'''Отражения''' - максимальное кол-во отражений от стенок.<br />
*'''минимальный скейл''' - (curminsc) минимальный скейл графики шариков<br />
*'''максимальный скейл''' - (curmaxsc) максимальный скейл графики шариков<br />
*'''время скалирования''' - (cursctm) время скалирования шариков<br />
<br />
<br />
=Эффекты=<br />
*'''Удар бомбы об гвоздь''' - объект, запускаемый на месте удара бомбы об гвоздь.<br />
*'''Удар шара об гвоздь''' - объект, запускаемый на месте удара шарика об гвоздь.<br />
*'''Очки в намберсах''' - объект, запускаемый в месте лопанья шариков.<br />
*'''Очки в намберсах 2''' - объект с финальными очками, летящими в цель.<br />
<br />
<br />
=Слушатели=<br />
*'''Выстрел''' - объект, которому передаются нижеследующие состояния при выстреле из пушки. Состояния: '''shot''' - выстрел обычным шариком, '''mine''' - выстрел миной, '''color''' - выстрел цветной бомбой, '''bullet''' - выстрел бомбой-ядром.<br />
<br />
<br />
=Настройки=<br />
[[Файл:02-01-2014 13-40-18.png|250px|thumb|right]]<br />
*'''Позиция стреляющего''' - Позиция стреляющего шарика (x;y)<br />
*'''Расстояние от следующего''' - Расстояние от стреляющего шарика до следующего за ним.<br />
*'''Высота физической сетки''' - Высота физической сетки поля.<br />
*'''Ширина физической сетки''' - Ширина физической сетки поля.<br />
*'''Смещение''' - Смешение поля относительно начала координат родителя.<br />
*'''Радиус шариков''' - Радиус шариков.<br />
*'''Мин.радиус шариков''' - Мин.размер шариков во время "взрыва".<br />
*'''Макс.радиус шариков''' - Макс.размер шариков во время "взрыва".<br />
*'''Ширина шариков''' - Ширина шариков на поле. Вычисляется по формуле (2R+2).<br />
*'''Высота шариков''' - Высота шариков на поле. Вычисляется по формуле (2R-2).<br />
*'''номер фрейма графики шариков''' - (clip_frame) Номер фрейма в клипе графики шариков.<br />
*'''Мин.энергия''' - Мин.энергия выстрела. (или что-то в этом духе, более точной информацией обладает только создатель оригинального кода баббла)<br />
*'''Макс.энергия''' - Макс.энергия выстрела.<br />
*'''убирать выбитый цвет из пушки''' - (fbub1) Убирать выбитый цвет из пушки (нет=0, да=1).<br />
*'''Уровень''' - Уровень игры: новичок, любитель, эксперт, мастер, кастомный (настройки уровня сложности зависят от параметров заданных в добавляемом поле "уровень сложности")<br />
*'''Вид игры''' - Режим игры: аркада, стратегия. Режим Аркада был создан для моды "битва", в котором предусматривалось добавление доп.рядов через определенное время бездействия игрока.<br />
[[Файл:02-01-2014 10-04-52.png|250px|thumb|right]]<br />
*'''Начальные шаги до наезда''' - Количество шагов через которое поле "накажет" игрока дополнительными рядами.<br />
*'''Промежутки добавления''' - Время через которое будут добавляться следующий ряд (в режиме Аркада).<br />
*'''Добавление рядов''' - Разрешить добавление рядов. Иначе только извне. Целесообразно использовать в снукере.<br />
*'''Тип досыпания''' - Тип досыпания шариков. Снукер или классический бабблшутер.<br />
*'''подтип классического досыпания''' - (addrowt) Вид классического досыпания шариков (нормальное=0,с заполнениями пустот=1).<br />
*'''Обваливать висячие''' - Обваливать висячие шарики (да/нет). Отключение этого параметра используется в игре снукер.<br />
*'''Отскок от потолка''' - Название говорит само за себя. Используется в снукере.<br />
*'''Файл-описание уровня''' - Файл формата .xml в котором будет построены уровни для игры. Пример приведен справа.<br />
*'''Номер уровня в файле''' - Стартовый уровень, с которого будет начинаться игра.<br />
*'''матч по цифрам''' - (nummatch) Матч по цифрам (нет=0, да=1).<br />
*'''multColor''' - (multColor) умножать число сматченых шариков на номер цвета при подсчете очков (нет=0, да=1).<br />
*'''removeDropWait''' - (removeDropWait) <br />
*'''объект подложки''' - (objback) Объект подлжоки, которой будет передана графика и состояни выстрела и его окончания.<br />
*'''включить анти-чит''' - (anti_cheat) Включить проверку на чит (нет=0, да=1).<br />
*'''собирать статистику''' - (collec_stat) Включить сбор статистики (нет=0, да=1).<br />
*'''складывать строки''' - (is_summing) Включить сбор статистики (нет=0, да=1).Складывать ли наезжающие строки при выбивании нескольких цветов.<br />
<br />
=настройки Lost Numbers=<br />
*'''время перекрашивания''' - (lnreptm)<br />
*'''макс скейл перекрашивания''' - (lnrepmaxsc)<br />
*'''перекрашивать сразу''' - (lnrepimm) нет=0, да=1<br />
<br />
<br />
=Параметры бомб=<br />
===Мина===<br />
[[Файл:02-01-2014 13-37-11.png|250px|thumb|right]]<br />
*'''res''' - Графический ресурс мины в пушке.<br />
*'''res1''' - Графический ресурс мины в полете.<br />
*'''подложка''' - (bomb1bg) Графический ресурс для подложки бомбы (взрыв по радиусу).<br />
*'''Вероятность''' - Вероятность появления данной бомбы.<br />
*'''Скип''' - Количество пропущенных первых шагов для появления бомбы (не реализовано).<br />
*'''Количество''' - Количество появления бомбы за одну игровую сессию.<br />
*'''Шаги''' - Количество шагов до появления данной бомбы.<br />
*'''Шаги ok''' - Количество удачных шагов до появления бомбы.<br />
*'''Шаги miss''' - Количество неудачных шагов до появления бомбы.<br />
*'''n1''' - Минимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''n2''' - Максимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''Радиус''' - Радиус взрыва данной бомбы<br />
*'''Эффект''' - Эффект на месте взрыва бомбы. Объект должен иметь состояние beg.<br />
<br />
===Цвет===<br />
*'''res''' - Графический ресурс бомбы-цвет в пушке.<br />
*'''res1''' - Графический ресурс бомбы-цвет в полете.<br />
*'''подложка''' - (bomb2bg) Графический ресурс для подложки бомбы 2 (взрыв шариков одного цвета).<br />
*'''Вероятность''' - Вероятность появления данной бомбы.<br />
*'''Скип''' - Количество пропущенных первых шагов для появления бомбы (не реализовано).<br />
*'''Количество''' - Количество появления бомбы за одну игровую сессию.<br />
*'''Шаги''' - Количество шагов до появления данной бомбы.<br />
*'''Шаги ok''' - Количество удачных шагов до появления бомбы.<br />
*'''Шаги miss''' - Количество неудачных шагов до появления бомбы.<br />
*'''n1''' - Минимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''n2''' - Максимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
<br />
===Ядро===<br />
*'''res''' - Графический ресурс ядра в пушке.<br />
*'''res1''' - Графический ресурс ядра в полете.<br />
*'''подложка''' - (bomb3bg) Графический ресурс для подложки бомбы 3 (летит и взрывает все вокруг себя).<br />
*'''Вероятность''' - Вероятность появления данной бомбы.<br />
*'''Скип''' - Количество пропущенных первых шагов для появления бомбы (не реализовано).<br />
*'''Количество''' - Количество появления бомбы за одну игровую сессию.<br />
*'''Шаги''' - Количество шагов до появления данной бомбы.<br />
*'''Шаги ok''' - Количество удачных шагов до появления бомбы.<br />
*'''Шаги miss''' - Количество неудачных шагов до появления бомбы.<br />
*'''n1''' - Минимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''n2''' - Максимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''Флайер''' - Флайер летящий под бомбочкой.<br />
*'''Флайер 2''' - Флайер летящий под бомбочкой.<br />
*'''Скорость''' - Скорость перемещения бомбочки.<br />
*'''Число отскоков''' - Число отскоков от стен для бомбочки.<br />
<br />
=Звуки=<br />
*'''shot''' - Звук выстрела.<br />
*'''fail''' - Звук промаха.<br />
*'''explosion''' - Звук взрыва шариков.<br />
*'''intro''' - Звук в начале игры.<br />
*'''game over''' - Звук окончания игры.<br />
*'''bomb mine''' - Звук выстрела бомбы "мина".<br />
*'''bomb bullet''' - Звук выстрела бомбы "ядро".<br />
*'''bomb color''' - Звук выстрела бомбы "цвет".<br />
*'''Взрыв бомбы мина''' - Говорит само за себя.<br />
*'''Взрыв бомбы ядро''' - Говорит само за себя.<br />
*'''Взрыв бомбы цвет''' - Говорит само за себя.<br />
<br />
<br />
=Очковая система=<br />
*'''Тип''' - ''classic'', ''lostnumbers'', ''nightopera''<br />
*'''коеф для матча''' - (match_coef) коэффициент очков для матча.<br />
*'''коеф для обвала''' - (drop_coef) коэффициент очков для обвала.<br />
*'''Визуализатор шагов''' - счетчик, прогресс, которые отображает оставшееся количество шагов до "наезда".<br />
*'''Визуализатор последних очков''' - счетчик, таймер, прогресс последних очков.<br />
*'''Аниматор последних очков''' - машина со счетчиком (подобъектом), которая запускается в месте попадания шарика. Должна иметь состояние ''show''.<br />
*'''Тип подсчета''' - очки могут считаться как: 1) количество сматченных шариков * на kBub; 2) сумма порядковых номеров (сматчили 4 шарика -> очки = 1+2+3+4)<br />
*'''kBub''' - коэффициент за сматченные шарики.<br />
*'''kCmb''' - коэффициент за комбо.<br />
*'''kMov''' - коэффициент за оставшиеся ходы.<br />
*'''kTim''' - коэффициент за оставшиеся секунды.<br />
*'''kPst''' - коэффициент за удаленные с поля вредители.<br />
*'''kSnw''' - коэффициент за удаленные с поля снежинки.<br />
<br />
= Состояния =<br />
*'''pause''' - перевести объект в паузу; <br />
*'''resume''' - вытащить объект из паузы;<br />
*'''hint''' - выполнить хинт ( нужно в поле hntt указать номер хинта);<br />
*'''gover''' - <br />
*'''game_continue''' - продолжить игру (например, в случае, когда мы проиграли, но даем игроку шанс, убрав несколько нижних линий);<br />
*'''game_lose''' - задекларировать проигрыш (например, когда мы проиграли, и игрок отказался от шанса продолжить игру);<br />
*'''cur_on''' - отображать траекторию при прицеливании;<br />
*'''cur_off''' - убрать траекторию при прицеливании;<br />
*'''fbubswap''' - поменять местами шарики в пушке;<br />
*'''del_bottom''' - удалить несколько (задается параметром) нижних рядов;<br />
*'''effdigsc2''' - <br />
*'''update_params''' - обновить параметры объекта(пока только номер фрейма клипа шариков);<br />
*'''reset_game''' - сбросит игру , которая сохранена в опциях;<br />
*'''send_stat''' - отправить статистику.<br />
<br />
<br />
<br />
<br />
=Добавляемые параметры=<br />
<br />
===[[Файл:+.png]] Графический ресурс===<br />
*'''Клип''' - Графический ресурс, перетаскивается из редактора ресурсов.<br />
*'''Номер цвета''' - Номер цвета, который будет соответствовать значению цвета в файле-уровня.<br />
<br />
<br />
===[[Файл:+.png]] Ресурсы функциональных шариков===<br />
[[Файл:03-02-2014 10-35-45.png|200px|thumb|right]]<br />
*'''Функционал''' - Записываем значение чудо-шарика из файла-настроек.<br />
*'''Клип''' - Графический ресурс шариков, обладающих данным функционалом.<br />
*'''Звук''' - Звук шарика, обладающего данным функционалом.<br />
*'''Эффект''' - Машина/Патикл обладающие состоянием beg.<br />
<br />
<br />
===[[Файл:+.png]] Параметры анимации для шарика лунка===<br />
*'''Время перемещения''' - время движения шарика в центр лунки.<br />
*'''Время исчезновения''' - время исчезновения шарика в лунке (скейл).<br />
*'''Время жизни''' - время жизни эффекта.<br />
<br />
<br />
===[[Файл:+.png]] Параметры анимации для шарика колючка===<br />
*'''Время жизни''' - время жизни эффекта.<br />
<br />
<br />
===[[Файл:+.png]] Параметры анимации для шарика снежинка===<br />
*'''Время жизни''' - время жизни эффекта.<br />
<br />
<br />
===[[Файл:+.png]] Параметры анимации для шарика вредитель===<br />
*'''Время жизни''' - время жизни эффекта.<br />
*'''Время ожидания скина''' - время, пока поменяется скин шарика.<br />
*'''Эффект''' - эффект, возникающий в момент обрастания вредителя снежинками.<br />
<br />
<br />
===[[Файл:+.png]] Физика===<br />
[[Файл:02-01-2014 13-57-15.png|250px|thumb|right]]<br />
*'''Справа находится пример настроек физики для шариков радиусом 24.'''<br />
*'''Move''' - Коэффициент отталкивания летящего шарика.<br />
*'''MinDest2''' - Квадрат минимального расстояния, когда шарик считается в покое.<br />
*'''MinVel2''' - Квадрат минимальной скорости, когда шарик считается в покое.<br />
*'''Down''' - Трение.<br />
*'''MaxVel''' - Максимальная скорость колебаний.<br />
*'''Elast''' - Эластичность с-мы (коэффициент для сил действующих между соседними шариками).<br />
*'''Glue''' - Коэффициент притяжения шарика к центру ячейки.<br />
*'''MoveC''' - Радиус действия летящего шарика в ячейках.<br />
*'''BangVel''' - Приращение для скорости взрыва.<br />
<br />
<br />
===[[Файл:+.png]] параметры хинта бомба===<br />
*'''res''' - (res) Графический ресурс для бомбочки.<br />
*'''радиус''' - (r) Радиус действия бомбочки (взрывает шарики в пределах этого радиуса).<br />
<br />
===[[Файл:+.png]] Уровень сложности===<br />
''Название параметров говорит само за себя. Создавать их можно бесконечное множество, главное не забывать назначать им порядковые номера в поле "уровень" по мере добавления новых уровней. Количество уровней сложности внутри объекта должно соответствовать количеству уровней сложности у необходимого Вам монстра. Количество цветов заданное в файле-настройках .xml имеет приоритет над теми, что мы задаем в объекте.''<br />
*'''Уровень''' - номер уровня.<br />
*'''Кол-во цветов''' - число цветов на поле.<br />
*'''Шаги до наезда''' - число шагов до наезда.<br />
*'''Бомба мина: вероятность''' - вероятность появления мины в процентах.<br />
*'''Бомба мина: радиус''' - радиус мины в шариках.<br />
*'''Бомба ядро:вероятность''' - вероятность появления ядра в процентах.<br />
*'''Бомба ядро: число отскоков от стен''' - число отскоков ядра от стен поля.<br />
*'''Бомба цвет: количество''' - число бомб-цвет, которые появятся на уровне.<br />
*'''Бомба цвет: шаги''' - число шагов вначале уровня до появления бомбы-цвет.<br />
<br />
<br />
===[[Файл:+.png]] Визуализатор общих очков===<br />
*'''Объект''' - счетчик, прогресс, показывающий сумму очков за уровень.<br />
<br />
<br />
===[[Файл:+.png]] Игра выиграна: изменить состояние объекта===<br />
*'''Объект''' - объект, состояние которого меняем при выигрыше.<br />
*'''Состояние''' - новое состояние объекта.<br />
<br />
<br />
===[[Файл:+.png]] Игра выиграна: изменить параметр объекта===<br />
*'''Объект''' - объект, параметр которого меняем при выигрыше.<br />
*'''Параметр''' - параметр, который меняем.<br />
*'''Значение''' - новое значение параметра.<br />
<br />
<br />
===[[Файл:+.png]] Игра проиграна: изменить состояние объекта===<br />
*'''Объект''' - объект, состояние которого меняем при проигрыше.<br />
*'''Состояние''' - новое состояние объекта.<br />
<br />
===[[Файл:+.png]] Игра проиграна: изменить параметр объекта===<br />
*'''Объект''' - объект, параметр которого меняем при проигрыше.<br />
*'''Параметр''' - параметр, который меняем.<br />
*'''Значение''' - новое значение параметра.<br />
<br />
<br />
===[[Файл:+.png]] Выбили цвет: изменить состояние объекта===<br />
*'''Объект''' - объект, состояние которого меняем при удалении цвета с поля. При этом BSh передает указанному объекту параметр ''param_removed_colors'' со значением количества выбитых цветов за данный ход.<br />
*'''Состояние''' - новое состояние объекта.<br />
<br />
=Хинты=<br />
*'''Замена шарика''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=0, после чего передать состояние hint.<br />
*'''Удаление цвета''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=5, после чего передать состояние hint.<br />
*'''Ядро''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=3, после чего передать состояние hint.<br />
*'''Мина''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=1, после чего передать состояние hint.<br />
*'''Курсор''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=0, после чего передать состояние cur_on. После выстрела курсор исчезает.<br />
<br />
<br />
=Пример проекта=<br />
S:\!MOBILE\!!!EditorGames\Wiki_sample\bubble_snooker_graphprogress.zip<br />
<br />
<br />
=Пример реализации: задание уровня=<br />
<br />
::'''1)''' Если нам необходимо задать уровень шутеру прямиком из экрана где он находиться, и при этом он уже запустился (прорисовалась графика). То с начало мы должны передать ему состояние end, после чего задать необходимый уровень и переинитить сцену на которой он находиться (желательно чтобы на этой сцене был только шутер):<br />
<br />
[[Файл:Bubble change level.png|centre]]<br />
<br />
<br />
::'''2)''' Если же, мы задаем нужный уровень удалённо ( с другого экрана), то мы расшариваем экран с самим шутером на сцену где будем задавать ему новый уровень. И на том экране (удалённом) задаём шутеру нужный уровень (levelNum). <br />
<br />
[[Category:Game mechanic]]</div>Iskoroboghttps://wiki.appsalutecreator.com/index.php?title=Bubble_Shooter&diff=8614Bubble Shooter2017-03-15T08:22:41Z<p>Iskorobog: /* Добавляемые параметры */</p>
<hr />
<div>{{TOC right}}<br />
Игровая механика BubbleShooter.<br />
<br />
=BubbleShooter Setup=<br />
'''Общие настройки'''<br />
*''' память''' - (memo) Если 1, то при повторном открытии экрана объект не обновляет свои параметры (помнит текущие параметры, оставшиеся от предыдущего посещения экрана)<br />
*'''res''' - графичесий ресурс поля для игры. Его размер является зоной для тапа.<br />
*'''Слушатель''' - объект типа Matchbattle.<br />
<br />
'''Группа - Сохранения'''<br />
*'''нужны''' - если '''да''', то сохраняет результаты игры в опции.<br />
*'''сохранять глобально''' - (prof) Если ==0, то значение будет сохранено в текущий профиль, если 1 - то глобально.<br />
*'''место''' - место в опциях, куда сохраняются данные игры.<br />
*'''флаг старых сейвов''' - (old_records) Место в опциях, куда пишем флаг 1 , когда считали и отправили сейвы со старого бабл шутера<br />
<br />
<br />
=Графика=<br />
*'''красные шарики''' - графический ресурс шарика данного цвета.<br />
*'''зеленые шарики''' - графический ресурс шарика данного цвета.<br />
*'''синие шарики''' - графический ресурс шарика данного цвета.<br />
*'''желтые шарики''' - графический ресурс шарика данного цвета.<br />
*'''голубые шарики''' - графический ресурс шарика данного цвета.<br />
*'''пурпурные шарики''' - графический ресурс шарика данного цвета.<br />
<br />
<br />
=Прицел=<br />
*'''res''' - Графический ресурс прицела, перетаскивается из редактора ресурсов.<br />
*'''Время''' - Время от нажатия до момента появления прицела.<br />
*'''Время перед мувом''' - Время от нажатия до момента появления прицела в движении.<br />
*'''Смещение''' - Расстояние между пальцем и центром прицела.<br />
<br />
<br />
=Курсор=<br />
*'''res''' - Графический ресурс курсора, перетаскивается из редактора ресурсов.<br />
*'''Кол-во шариков''' - количество шариков в курсоре.<br />
*'''Отражения''' - максимальное кол-во отражений от стенок.<br />
*'''минимальный скейл''' - (curminsc) минимальный скейл графики шариков<br />
*'''максимальный скейл''' - (curmaxsc) максимальный скейл графики шариков<br />
*'''время скалирования''' - (cursctm) время скалирования шариков<br />
<br />
<br />
=Эффекты=<br />
*'''Удар бомбы об гвоздь''' - объект, запускаемый на месте удара бомбы об гвоздь.<br />
*'''Удар шара об гвоздь''' - объект, запускаемый на месте удара шарика об гвоздь.<br />
*'''Очки в намберсах''' - объект, запускаемый в месте лопанья шариков.<br />
*'''Очки в намберсах 2''' - объект с финальными очками, летящими в цель.<br />
<br />
<br />
=Слушатели=<br />
*'''Выстрел''' - объект, которому передаются нижеследующие состояния при выстреле из пушки. Состояния: '''shot''' - выстрел обычным шариком, '''mine''' - выстрел миной, '''color''' - выстрел цветной бомбой, '''bullet''' - выстрел бомбой-ядром.<br />
<br />
<br />
=Настройки=<br />
[[Файл:02-01-2014 13-40-18.png|250px|thumb|right]]<br />
*'''Позиция стреляющего''' - Позиция стреляющего шарика (x;y)<br />
*'''Расстояние от следующего''' - Расстояние от стреляющего шарика до следующего за ним.<br />
*'''Высота физической сетки''' - Высота физической сетки поля.<br />
*'''Ширина физической сетки''' - Ширина физической сетки поля.<br />
*'''Смещение''' - Смешение поля относительно начала координат родителя.<br />
*'''Радиус шариков''' - Радиус шариков.<br />
*'''Мин.радиус шариков''' - Мин.размер шариков во время "взрыва".<br />
*'''Макс.радиус шариков''' - Макс.размер шариков во время "взрыва".<br />
*'''Ширина шариков''' - Ширина шариков на поле. Вычисляется по формуле (2R+2).<br />
*'''Высота шариков''' - Высота шариков на поле. Вычисляется по формуле (2R-2).<br />
*'''номер фрейма графики шариков''' - (clip_frame) Номер фрейма в клипе графики шариков.<br />
*'''Мин.энергия''' - Мин.энергия выстрела. (или что-то в этом духе, более точной информацией обладает только создатель оригинального кода баббла)<br />
*'''Макс.энергия''' - Макс.энергия выстрела.<br />
*'''убирать выбитый цвет из пушки''' - (fbub1) Убирать выбитый цвет из пушки (нет=0, да=1).<br />
*'''Уровень''' - Уровень игры: новичок, любитель, эксперт, мастер, кастомный (настройки уровня сложности зависят от параметров заданных в добавляемом поле "уровень сложности")<br />
*'''Вид игры''' - Режим игры: аркада, стратегия. Режим Аркада был создан для моды "битва", в котором предусматривалось добавление доп.рядов через определенное время бездействия игрока.<br />
[[Файл:02-01-2014 10-04-52.png|250px|thumb|right]]<br />
*'''Начальные шаги до наезда''' - Количество шагов через которое поле "накажет" игрока дополнительными рядами.<br />
*'''Промежутки добавления''' - Время через которое будут добавляться следующий ряд (в режиме Аркада).<br />
*'''Добавление рядов''' - Разрешить добавление рядов. Иначе только извне. Целесообразно использовать в снукере.<br />
*'''Тип досыпания''' - Тип досыпания шариков. Снукер или классический бабблшутер.<br />
*'''подтип классического досыпания''' - (addrowt) Вид классического досыпания шариков (нормальное=0,с заполнениями пустот=1).<br />
*'''Обваливать висячие''' - Обваливать висячие шарики (да/нет). Отключение этого параметра используется в игре снукер.<br />
*'''Отскок от потолка''' - Название говорит само за себя. Используется в снукере.<br />
*'''Файл-описание уровня''' - Файл формата .xml в котором будет построены уровни для игры. Пример приведен справа.<br />
*'''Номер уровня в файле''' - Стартовый уровень, с которого будет начинаться игра.<br />
*'''матч по цифрам''' - (nummatch) Матч по цифрам (нет=0, да=1).<br />
*'''multColor''' - (multColor) умножать число сматченых шариков на номер цвета при подсчете очков (нет=0, да=1).<br />
*'''removeDropWait''' - (removeDropWait) <br />
*'''объект подложки''' - (objback) Объект подлжоки, которой будет передана графика и состояни выстрела и его окончания.<br />
*'''включить анти-чит''' - (anti_cheat) Включить проверку на чит (нет=0, да=1).<br />
*'''собирать статистику''' - (collec_stat) Включить сбор статистики (нет=0, да=1).<br />
*'''складывать строки''' - (is_summing) Включить сбор статистики (нет=0, да=1).Складывать ли наезжающие строки при выбивании нескольких цветов.<br />
<br />
=настройки Lost Numbers=<br />
*'''время перекрашивания''' - (lnreptm)<br />
*'''макс скейл перекрашивания''' - (lnrepmaxsc)<br />
*'''перекрашивать сразу''' - (lnrepimm) нет=0, да=1<br />
<br />
<br />
=Параметры бомб=<br />
===Мина===<br />
[[Файл:02-01-2014 13-37-11.png|250px|thumb|right]]<br />
*'''res''' - Графический ресурс мины в пушке.<br />
*'''res1''' - Графический ресурс мины в полете.<br />
*'''подложка''' - (bomb1bg) Графический ресурс для подложки бомбы (взрыв по радиусу).<br />
*'''Вероятность''' - Вероятность появления данной бомбы.<br />
*'''Скип''' - Количество пропущенных первых шагов для появления бомбы (не реализовано).<br />
*'''Количество''' - Количество появления бомбы за одну игровую сессию.<br />
*'''Шаги''' - Количество шагов до появления данной бомбы.<br />
*'''Шаги ok''' - Количество удачных шагов до появления бомбы.<br />
*'''Шаги miss''' - Количество неудачных шагов до появления бомбы.<br />
*'''n1''' - Минимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''n2''' - Максимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''Радиус''' - Радиус взрыва данной бомбы<br />
*'''Эффект''' - Эффект на месте взрыва бомбы. Объект должен иметь состояние beg.<br />
<br />
===Цвет===<br />
*'''res''' - Графический ресурс бомбы-цвет в пушке.<br />
*'''res1''' - Графический ресурс бомбы-цвет в полете.<br />
*'''подложка''' - (bomb2bg) Графический ресурс для подложки бомбы 2 (взрыв шариков одного цвета).<br />
*'''Вероятность''' - Вероятность появления данной бомбы.<br />
*'''Скип''' - Количество пропущенных первых шагов для появления бомбы (не реализовано).<br />
*'''Количество''' - Количество появления бомбы за одну игровую сессию.<br />
*'''Шаги''' - Количество шагов до появления данной бомбы.<br />
*'''Шаги ok''' - Количество удачных шагов до появления бомбы.<br />
*'''Шаги miss''' - Количество неудачных шагов до появления бомбы.<br />
*'''n1''' - Минимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''n2''' - Максимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
<br />
===Ядро===<br />
*'''res''' - Графический ресурс ядра в пушке.<br />
*'''res1''' - Графический ресурс ядра в полете.<br />
*'''подложка''' - (bomb3bg) Графический ресурс для подложки бомбы 3 (летит и взрывает все вокруг себя).<br />
*'''Вероятность''' - Вероятность появления данной бомбы.<br />
*'''Скип''' - Количество пропущенных первых шагов для появления бомбы (не реализовано).<br />
*'''Количество''' - Количество появления бомбы за одну игровую сессию.<br />
*'''Шаги''' - Количество шагов до появления данной бомбы.<br />
*'''Шаги ok''' - Количество удачных шагов до появления бомбы.<br />
*'''Шаги miss''' - Количество неудачных шагов до появления бомбы.<br />
*'''n1''' - Минимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''n2''' - Максимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''Флайер''' - Флайер летящий под бомбочкой.<br />
*'''Флайер 2''' - Флайер летящий под бомбочкой.<br />
*'''Скорость''' - Скорость перемещения бомбочки.<br />
*'''Число отскоков''' - Число отскоков от стен для бомбочки.<br />
<br />
=Звуки=<br />
*'''shot''' - Звук выстрела.<br />
*'''fail''' - Звук промаха.<br />
*'''explosion''' - Звук взрыва шариков.<br />
*'''intro''' - Звук в начале игры.<br />
*'''game over''' - Звук окончания игры.<br />
*'''bomb mine''' - Звук выстрела бомбы "мина".<br />
*'''bomb bullet''' - Звук выстрела бомбы "ядро".<br />
*'''bomb color''' - Звук выстрела бомбы "цвет".<br />
*'''Взрыв бомбы мина''' - Говорит само за себя.<br />
*'''Взрыв бомбы ядро''' - Говорит само за себя.<br />
*'''Взрыв бомбы цвет''' - Говорит само за себя.<br />
<br />
<br />
=Очковая система=<br />
*'''Тип''' - ''classic'', ''lostnumbers'', ''nightopera''<br />
*'''коеф для матча''' - (match_coef) коэффициент очков для матча.<br />
*'''коеф для обвала''' - (drop_coef) коэффициент очков для обвала.<br />
*'''Визуализатор шагов''' - счетчик, прогресс, которые отображает оставшееся количество шагов до "наезда".<br />
*'''Визуализатор последних очков''' - счетчик, таймер, прогресс последних очков.<br />
*'''Аниматор последних очков''' - машина со счетчиком (подобъектом), которая запускается в месте попадания шарика. Должна иметь состояние ''show''.<br />
*'''Тип подсчета''' - очки могут считаться как: 1) количество сматченных шариков * на kBub; 2) сумма порядковых номеров (сматчили 4 шарика -> очки = 1+2+3+4)<br />
*'''kBub''' - коэффициент за сматченные шарики.<br />
*'''kCmb''' - коэффициент за комбо.<br />
*'''kMov''' - коэффициент за оставшиеся ходы.<br />
*'''kTim''' - коэффициент за оставшиеся секунды.<br />
*'''kPst''' - коэффициент за удаленные с поля вредители.<br />
*'''kSnw''' - коэффициент за удаленные с поля снежинки.<br />
<br />
= Состояния =<br />
*'''pause''' - перевести объект в паузу; <br />
*'''resume''' - вытащить объект из паузы;<br />
*'''hint''' - выполнить хинт ( нужно в поле hntt указать номер хинта);<br />
*'''gover''' - <br />
*'''game_continue''' - продолжить игру (например, в случае, когда мы проиграли, но даем игроку шанс, убрав несколько нижних линий);<br />
*'''game_lose''' - задекларировать проигрыш (например, когда мы проиграли, и игрок отказался от шанса продолжить игру);<br />
*'''cur_on''' - отображать траекторию при прицеливании;<br />
*'''cur_off''' - убрать траекторию при прицеливании;<br />
*'''fbubswap''' - поменять местами шарики в пушке;<br />
*'''del_bottom''' - удалить несколько (задается параметром) нижних рядов;<br />
*'''effdigsc2''' - <br />
*'''update_params''' - обновить параметры объекта(пока только номер фрейма клипа шариков);<br />
*'''reset_game''' - сбросит игру , которая сохранена в опциях;<br />
*'''send_stat''' - отправить статистику.<br />
<br />
<br />
<br />
<br />
=Добавляемые параметры=<br />
<br />
===[[Файл:+.png]] Графический ресурс===<br />
*'''Клип''' - Графический ресурс, перетаскивается из редактора ресурсов.<br />
*'''Номер цвета''' - Номер цвета, который будет соответствовать значению цвета в файле-уровня.<br />
<br />
<br />
===[[Файл:+.png]] Ресурсы функциональных шариков===<br />
[[Файл:03-02-2014 10-35-45.png|200px|thumb|right]]<br />
*'''Функционал''' - Записываем значение чудо-шарика из файла-настроек.<br />
*'''Клип''' - Графический ресурс шариков, обладающих данным функционалом.<br />
*'''Звук''' - Звук шарика, обладающего данным функционалом.<br />
*'''Эффект''' - Машина/Патикл обладающие состоянием beg.<br />
<br />
<br />
===[[Файл:+.png]] Параметры анимации для шарика лунка===<br />
*'''Время перемещения''' - время движения шарика в центр лунки.<br />
*'''Время исчезновения''' - время исчезновения шарика в лунке (скейл).<br />
*'''Время жизни''' - время жизни эффекта.<br />
<br />
<br />
===[[Файл:+.png]] Параметры анимации для шарика колючка===<br />
*'''Время жизни''' - время жизни эффекта.<br />
<br />
<br />
===[[Файл:+.png]] Параметры анимации для шарика снежинка===<br />
*'''Время жизни''' - время жизни эффекта.<br />
<br />
<br />
===[[Файл:+.png]] Параметры анимации для шарика вредитель===<br />
*'''Время жизни''' - время жизни эффекта.<br />
*'''Время ожидания скина''' - время, пока поменяется скин шарика.<br />
*'''Эффект''' - эффект, возникающий в момент обрастания вредителя снежинками.<br />
<br />
<br />
===[[Файл:+.png]] Физика===<br />
[[Файл:02-01-2014 13-57-15.png|250px|thumb|right]]<br />
*'''Справа находится пример настроек физики для шариков радиусом 24.'''<br />
*'''Move''' - Коэффициент отталкивания летящего шарика.<br />
*'''MinDest2''' - Квадрат минимального расстояния, когда шарик считается в покое.<br />
*'''MinVel2''' - Квадрат минимальной скорости, когда шарик считается в покое.<br />
*'''Down''' - Трение.<br />
*'''MaxVel''' - Максимальная скорость колебаний.<br />
*'''Elast''' - Эластичность с-мы (коэффициент для сил действующих между соседними шариками).<br />
*'''Glue''' - Коэффициент притяжения шарика к центру ячейки.<br />
*'''MoveC''' - Радиус действия летящего шарика в ячейках.<br />
*'''BangVel''' - Приращение для скорости взрыва.<br />
<br />
<br />
===[[Файл:+.png]] параметры хинта бомба===<br />
<br />
<br />
===[[Файл:+.png]] Уровень сложности===<br />
''Название параметров говорит само за себя. Создавать их можно бесконечное множество, главное не забывать назначать им порядковые номера в поле "уровень" по мере добавления новых уровней. Количество уровней сложности внутри объекта должно соответствовать количеству уровней сложности у необходимого Вам монстра. Количество цветов заданное в файле-настройках .xml имеет приоритет над теми, что мы задаем в объекте.''<br />
*'''Уровень''' - номер уровня.<br />
*'''Кол-во цветов''' - число цветов на поле.<br />
*'''Шаги до наезда''' - число шагов до наезда.<br />
*'''Бомба мина: вероятность''' - вероятность появления мины в процентах.<br />
*'''Бомба мина: радиус''' - радиус мины в шариках.<br />
*'''Бомба ядро:вероятность''' - вероятность появления ядра в процентах.<br />
*'''Бомба ядро: число отскоков от стен''' - число отскоков ядра от стен поля.<br />
*'''Бомба цвет: количество''' - число бомб-цвет, которые появятся на уровне.<br />
*'''Бомба цвет: шаги''' - число шагов вначале уровня до появления бомбы-цвет.<br />
<br />
<br />
===[[Файл:+.png]] Визуализатор общих очков===<br />
*'''Объект''' - счетчик, прогресс, показывающий сумму очков за уровень.<br />
<br />
<br />
===[[Файл:+.png]] Игра выиграна: изменить состояние объекта===<br />
*'''Объект''' - объект, состояние которого меняем при выигрыше.<br />
*'''Состояние''' - новое состояние объекта.<br />
<br />
<br />
===[[Файл:+.png]] Игра выиграна: изменить параметр объекта===<br />
*'''Объект''' - объект, параметр которого меняем при выигрыше.<br />
*'''Параметр''' - параметр, который меняем.<br />
*'''Значение''' - новое значение параметра.<br />
<br />
<br />
===[[Файл:+.png]] Игра проиграна: изменить состояние объекта===<br />
*'''Объект''' - объект, состояние которого меняем при проигрыше.<br />
*'''Состояние''' - новое состояние объекта.<br />
<br />
===[[Файл:+.png]] Игра проиграна: изменить параметр объекта===<br />
*'''Объект''' - объект, параметр которого меняем при проигрыше.<br />
*'''Параметр''' - параметр, который меняем.<br />
*'''Значение''' - новое значение параметра.<br />
<br />
<br />
===[[Файл:+.png]] Выбили цвет: изменить состояние объекта===<br />
*'''Объект''' - объект, состояние которого меняем при удалении цвета с поля. При этом BSh передает указанному объекту параметр ''param_removed_colors'' со значением количества выбитых цветов за данный ход.<br />
*'''Состояние''' - новое состояние объекта.<br />
<br />
=Хинты=<br />
*'''Замена шарика''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=0, после чего передать состояние hint.<br />
*'''Удаление цвета''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=5, после чего передать состояние hint.<br />
*'''Ядро''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=3, после чего передать состояние hint.<br />
*'''Мина''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=1, после чего передать состояние hint.<br />
*'''Курсор''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=0, после чего передать состояние cur_on. После выстрела курсор исчезает.<br />
<br />
<br />
=Пример проекта=<br />
S:\!MOBILE\!!!EditorGames\Wiki_sample\bubble_snooker_graphprogress.zip<br />
<br />
<br />
=Пример реализации: задание уровня=<br />
<br />
::'''1)''' Если нам необходимо задать уровень шутеру прямиком из экрана где он находиться, и при этом он уже запустился (прорисовалась графика). То с начало мы должны передать ему состояние end, после чего задать необходимый уровень и переинитить сцену на которой он находиться (желательно чтобы на этой сцене был только шутер):<br />
<br />
[[Файл:Bubble change level.png|centre]]<br />
<br />
<br />
::'''2)''' Если же, мы задаем нужный уровень удалённо ( с другого экрана), то мы расшариваем экран с самим шутером на сцену где будем задавать ему новый уровень. И на том экране (удалённом) задаём шутеру нужный уровень (levelNum). <br />
<br />
[[Category:Game mechanic]]</div>Iskoroboghttps://wiki.appsalutecreator.com/index.php?title=Bubble_Shooter&diff=8613Bubble Shooter2017-03-15T08:15:30Z<p>Iskorobog: /* Очковая система */</p>
<hr />
<div>{{TOC right}}<br />
Игровая механика BubbleShooter.<br />
<br />
=BubbleShooter Setup=<br />
'''Общие настройки'''<br />
*''' память''' - (memo) Если 1, то при повторном открытии экрана объект не обновляет свои параметры (помнит текущие параметры, оставшиеся от предыдущего посещения экрана)<br />
*'''res''' - графичесий ресурс поля для игры. Его размер является зоной для тапа.<br />
*'''Слушатель''' - объект типа Matchbattle.<br />
<br />
'''Группа - Сохранения'''<br />
*'''нужны''' - если '''да''', то сохраняет результаты игры в опции.<br />
*'''сохранять глобально''' - (prof) Если ==0, то значение будет сохранено в текущий профиль, если 1 - то глобально.<br />
*'''место''' - место в опциях, куда сохраняются данные игры.<br />
*'''флаг старых сейвов''' - (old_records) Место в опциях, куда пишем флаг 1 , когда считали и отправили сейвы со старого бабл шутера<br />
<br />
<br />
=Графика=<br />
*'''красные шарики''' - графический ресурс шарика данного цвета.<br />
*'''зеленые шарики''' - графический ресурс шарика данного цвета.<br />
*'''синие шарики''' - графический ресурс шарика данного цвета.<br />
*'''желтые шарики''' - графический ресурс шарика данного цвета.<br />
*'''голубые шарики''' - графический ресурс шарика данного цвета.<br />
*'''пурпурные шарики''' - графический ресурс шарика данного цвета.<br />
<br />
<br />
=Прицел=<br />
*'''res''' - Графический ресурс прицела, перетаскивается из редактора ресурсов.<br />
*'''Время''' - Время от нажатия до момента появления прицела.<br />
*'''Время перед мувом''' - Время от нажатия до момента появления прицела в движении.<br />
*'''Смещение''' - Расстояние между пальцем и центром прицела.<br />
<br />
<br />
=Курсор=<br />
*'''res''' - Графический ресурс курсора, перетаскивается из редактора ресурсов.<br />
*'''Кол-во шариков''' - количество шариков в курсоре.<br />
*'''Отражения''' - максимальное кол-во отражений от стенок.<br />
*'''минимальный скейл''' - (curminsc) минимальный скейл графики шариков<br />
*'''максимальный скейл''' - (curmaxsc) максимальный скейл графики шариков<br />
*'''время скалирования''' - (cursctm) время скалирования шариков<br />
<br />
<br />
=Эффекты=<br />
*'''Удар бомбы об гвоздь''' - объект, запускаемый на месте удара бомбы об гвоздь.<br />
*'''Удар шара об гвоздь''' - объект, запускаемый на месте удара шарика об гвоздь.<br />
*'''Очки в намберсах''' - объект, запускаемый в месте лопанья шариков.<br />
*'''Очки в намберсах 2''' - объект с финальными очками, летящими в цель.<br />
<br />
<br />
=Слушатели=<br />
*'''Выстрел''' - объект, которому передаются нижеследующие состояния при выстреле из пушки. Состояния: '''shot''' - выстрел обычным шариком, '''mine''' - выстрел миной, '''color''' - выстрел цветной бомбой, '''bullet''' - выстрел бомбой-ядром.<br />
<br />
<br />
=Настройки=<br />
[[Файл:02-01-2014 13-40-18.png|250px|thumb|right]]<br />
*'''Позиция стреляющего''' - Позиция стреляющего шарика (x;y)<br />
*'''Расстояние от следующего''' - Расстояние от стреляющего шарика до следующего за ним.<br />
*'''Высота физической сетки''' - Высота физической сетки поля.<br />
*'''Ширина физической сетки''' - Ширина физической сетки поля.<br />
*'''Смещение''' - Смешение поля относительно начала координат родителя.<br />
*'''Радиус шариков''' - Радиус шариков.<br />
*'''Мин.радиус шариков''' - Мин.размер шариков во время "взрыва".<br />
*'''Макс.радиус шариков''' - Макс.размер шариков во время "взрыва".<br />
*'''Ширина шариков''' - Ширина шариков на поле. Вычисляется по формуле (2R+2).<br />
*'''Высота шариков''' - Высота шариков на поле. Вычисляется по формуле (2R-2).<br />
*'''номер фрейма графики шариков''' - (clip_frame) Номер фрейма в клипе графики шариков.<br />
*'''Мин.энергия''' - Мин.энергия выстрела. (или что-то в этом духе, более точной информацией обладает только создатель оригинального кода баббла)<br />
*'''Макс.энергия''' - Макс.энергия выстрела.<br />
*'''убирать выбитый цвет из пушки''' - (fbub1) Убирать выбитый цвет из пушки (нет=0, да=1).<br />
*'''Уровень''' - Уровень игры: новичок, любитель, эксперт, мастер, кастомный (настройки уровня сложности зависят от параметров заданных в добавляемом поле "уровень сложности")<br />
*'''Вид игры''' - Режим игры: аркада, стратегия. Режим Аркада был создан для моды "битва", в котором предусматривалось добавление доп.рядов через определенное время бездействия игрока.<br />
[[Файл:02-01-2014 10-04-52.png|250px|thumb|right]]<br />
*'''Начальные шаги до наезда''' - Количество шагов через которое поле "накажет" игрока дополнительными рядами.<br />
*'''Промежутки добавления''' - Время через которое будут добавляться следующий ряд (в режиме Аркада).<br />
*'''Добавление рядов''' - Разрешить добавление рядов. Иначе только извне. Целесообразно использовать в снукере.<br />
*'''Тип досыпания''' - Тип досыпания шариков. Снукер или классический бабблшутер.<br />
*'''подтип классического досыпания''' - (addrowt) Вид классического досыпания шариков (нормальное=0,с заполнениями пустот=1).<br />
*'''Обваливать висячие''' - Обваливать висячие шарики (да/нет). Отключение этого параметра используется в игре снукер.<br />
*'''Отскок от потолка''' - Название говорит само за себя. Используется в снукере.<br />
*'''Файл-описание уровня''' - Файл формата .xml в котором будет построены уровни для игры. Пример приведен справа.<br />
*'''Номер уровня в файле''' - Стартовый уровень, с которого будет начинаться игра.<br />
*'''матч по цифрам''' - (nummatch) Матч по цифрам (нет=0, да=1).<br />
*'''multColor''' - (multColor) умножать число сматченых шариков на номер цвета при подсчете очков (нет=0, да=1).<br />
*'''removeDropWait''' - (removeDropWait) <br />
*'''объект подложки''' - (objback) Объект подлжоки, которой будет передана графика и состояни выстрела и его окончания.<br />
*'''включить анти-чит''' - (anti_cheat) Включить проверку на чит (нет=0, да=1).<br />
*'''собирать статистику''' - (collec_stat) Включить сбор статистики (нет=0, да=1).<br />
*'''складывать строки''' - (is_summing) Включить сбор статистики (нет=0, да=1).Складывать ли наезжающие строки при выбивании нескольких цветов.<br />
<br />
=настройки Lost Numbers=<br />
*'''время перекрашивания''' - (lnreptm)<br />
*'''макс скейл перекрашивания''' - (lnrepmaxsc)<br />
*'''перекрашивать сразу''' - (lnrepimm) нет=0, да=1<br />
<br />
<br />
=Параметры бомб=<br />
===Мина===<br />
[[Файл:02-01-2014 13-37-11.png|250px|thumb|right]]<br />
*'''res''' - Графический ресурс мины в пушке.<br />
*'''res1''' - Графический ресурс мины в полете.<br />
*'''подложка''' - (bomb1bg) Графический ресурс для подложки бомбы (взрыв по радиусу).<br />
*'''Вероятность''' - Вероятность появления данной бомбы.<br />
*'''Скип''' - Количество пропущенных первых шагов для появления бомбы (не реализовано).<br />
*'''Количество''' - Количество появления бомбы за одну игровую сессию.<br />
*'''Шаги''' - Количество шагов до появления данной бомбы.<br />
*'''Шаги ok''' - Количество удачных шагов до появления бомбы.<br />
*'''Шаги miss''' - Количество неудачных шагов до появления бомбы.<br />
*'''n1''' - Минимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''n2''' - Максимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''Радиус''' - Радиус взрыва данной бомбы<br />
*'''Эффект''' - Эффект на месте взрыва бомбы. Объект должен иметь состояние beg.<br />
<br />
===Цвет===<br />
*'''res''' - Графический ресурс бомбы-цвет в пушке.<br />
*'''res1''' - Графический ресурс бомбы-цвет в полете.<br />
*'''подложка''' - (bomb2bg) Графический ресурс для подложки бомбы 2 (взрыв шариков одного цвета).<br />
*'''Вероятность''' - Вероятность появления данной бомбы.<br />
*'''Скип''' - Количество пропущенных первых шагов для появления бомбы (не реализовано).<br />
*'''Количество''' - Количество появления бомбы за одну игровую сессию.<br />
*'''Шаги''' - Количество шагов до появления данной бомбы.<br />
*'''Шаги ok''' - Количество удачных шагов до появления бомбы.<br />
*'''Шаги miss''' - Количество неудачных шагов до появления бомбы.<br />
*'''n1''' - Минимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''n2''' - Максимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
<br />
===Ядро===<br />
*'''res''' - Графический ресурс ядра в пушке.<br />
*'''res1''' - Графический ресурс ядра в полете.<br />
*'''подложка''' - (bomb3bg) Графический ресурс для подложки бомбы 3 (летит и взрывает все вокруг себя).<br />
*'''Вероятность''' - Вероятность появления данной бомбы.<br />
*'''Скип''' - Количество пропущенных первых шагов для появления бомбы (не реализовано).<br />
*'''Количество''' - Количество появления бомбы за одну игровую сессию.<br />
*'''Шаги''' - Количество шагов до появления данной бомбы.<br />
*'''Шаги ok''' - Количество удачных шагов до появления бомбы.<br />
*'''Шаги miss''' - Количество неудачных шагов до появления бомбы.<br />
*'''n1''' - Минимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''n2''' - Максимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''Флайер''' - Флайер летящий под бомбочкой.<br />
*'''Флайер 2''' - Флайер летящий под бомбочкой.<br />
*'''Скорость''' - Скорость перемещения бомбочки.<br />
*'''Число отскоков''' - Число отскоков от стен для бомбочки.<br />
<br />
=Звуки=<br />
*'''shot''' - Звук выстрела.<br />
*'''fail''' - Звук промаха.<br />
*'''explosion''' - Звук взрыва шариков.<br />
*'''intro''' - Звук в начале игры.<br />
*'''game over''' - Звук окончания игры.<br />
*'''bomb mine''' - Звук выстрела бомбы "мина".<br />
*'''bomb bullet''' - Звук выстрела бомбы "ядро".<br />
*'''bomb color''' - Звук выстрела бомбы "цвет".<br />
*'''Взрыв бомбы мина''' - Говорит само за себя.<br />
*'''Взрыв бомбы ядро''' - Говорит само за себя.<br />
*'''Взрыв бомбы цвет''' - Говорит само за себя.<br />
<br />
<br />
=Очковая система=<br />
*'''Тип''' - ''classic'', ''lostnumbers'', ''nightopera''<br />
*'''коеф для матча''' - (match_coef) коэффициент очков для матча.<br />
*'''коеф для обвала''' - (drop_coef) коэффициент очков для обвала.<br />
*'''Визуализатор шагов''' - счетчик, прогресс, которые отображает оставшееся количество шагов до "наезда".<br />
*'''Визуализатор последних очков''' - счетчик, таймер, прогресс последних очков.<br />
*'''Аниматор последних очков''' - машина со счетчиком (подобъектом), которая запускается в месте попадания шарика. Должна иметь состояние ''show''.<br />
*'''Тип подсчета''' - очки могут считаться как: 1) количество сматченных шариков * на kBub; 2) сумма порядковых номеров (сматчили 4 шарика -> очки = 1+2+3+4)<br />
*'''kBub''' - коэффициент за сматченные шарики.<br />
*'''kCmb''' - коэффициент за комбо.<br />
*'''kMov''' - коэффициент за оставшиеся ходы.<br />
*'''kTim''' - коэффициент за оставшиеся секунды.<br />
*'''kPst''' - коэффициент за удаленные с поля вредители.<br />
*'''kSnw''' - коэффициент за удаленные с поля снежинки.<br />
<br />
= Состояния =<br />
*'''pause''' - перевести объект в паузу; <br />
*'''resume''' - вытащить объект из паузы;<br />
*'''hint''' - выполнить хинт ( нужно в поле hntt указать номер хинта);<br />
*'''gover''' - <br />
*'''game_continue''' - продолжить игру (например, в случае, когда мы проиграли, но даем игроку шанс, убрав несколько нижних линий);<br />
*'''game_lose''' - задекларировать проигрыш (например, когда мы проиграли, и игрок отказался от шанса продолжить игру);<br />
*'''cur_on''' - отображать траекторию при прицеливании;<br />
*'''cur_off''' - убрать траекторию при прицеливании;<br />
*'''fbubswap''' - поменять местами шарики в пушке;<br />
*'''del_bottom''' - удалить несколько (задается параметром) нижних рядов;<br />
*'''effdigsc2''' - <br />
*'''update_params''' - обновить параметры объекта(пока только номер фрейма клипа шариков);<br />
*'''reset_game''' - сбросит игру , которая сохранена в опциях;<br />
*'''send_stat''' - отправить статистику.<br />
<br />
<br />
<br />
<br />
=Добавляемые параметры=<br />
<br />
===[[Файл:+.png]] Графический ресурс===<br />
*'''Клип''' - Графический ресурс, перетаскивается из редактора ресурсов.<br />
*'''Номер цвета''' - Номер цвета, который будет соответствовать значению цвета в файле-уровня.<br />
<br />
<br />
===[[Файл:+.png]] Ресурсы функциональных шариков===<br />
[[Файл:03-02-2014 10-35-45.png|200px|thumb|right]]<br />
*'''Функционал''' - Записываем значение чудо-шарика из файла-настроек.<br />
*'''Клип''' - Графический ресурс шариков, обладающих данным функционалом.<br />
*'''Звук''' - Звук шарика, обладающего данным функционалом.<br />
*'''Эффект''' - Машина/Патикл обладающие состоянием beg.<br />
<br />
<br />
===[[Файл:+.png]] Параметры анимации для шарика лунка===<br />
*'''Время перемещения''' - время движения шарика в центр лунки.<br />
*'''Время исчезновения''' - время исчезновения шарика в лунке (скейл).<br />
*'''Время жизни''' - время жизни эффекта.<br />
<br />
<br />
===[[Файл:+.png]] Параметры анимации для шарика колючка===<br />
*'''Время жизни''' - время жизни эффекта.<br />
<br />
<br />
===[[Файл:+.png]] Параметры анимации для шарика снежинка===<br />
*'''Время жизни''' - время жизни эффекта.<br />
<br />
<br />
===[[Файл:+.png]] Параметры анимации для шарика вредитель===<br />
*'''Время жизни''' - время жизни эффекта.<br />
*'''Время ожидания скина''' - время, пока поменяется скин шарика.<br />
*'''Эффект''' - эффект, возникающий в момент обрастания вредителя снежинками.<br />
<br />
<br />
===[[Файл:+.png]] Физика===<br />
[[Файл:02-01-2014 13-57-15.png|250px|thumb|right]]<br />
*'''Справа находится пример настроек физики для шариков радиусом 24.'''<br />
*'''Move''' - Коэффициент отталкивания летящего шарика.<br />
*'''MinDest2''' - Квадрат минимального расстояния, когда шарик считается в покое.<br />
*'''MinVel2''' - Квадрат минимальной скорости, когда шарик считается в покое.<br />
*'''Down''' - Трение.<br />
*'''MaxVel''' - Максимальная скорость колебаний.<br />
*'''Elast''' - Эластичность с-мы (коэффициент для сил действующих между соседними шариками).<br />
*'''Glue''' - Коэффициент притяжения шарика к центру ячейки.<br />
*'''MoveC''' - Радиус действия летящего шарика в ячейках.<br />
*'''BangVel''' - Приращение для скорости взрыва.<br />
<br />
<br />
===[[Файл:+.png]] Уровень сложности===<br />
''Название параметров говорит само за себя. Создавать их можно бесконечное множество, главное не забывать назначать им порядковые номера в поле "уровень" по мере добавления новых уровней. Количество уровней сложности внутри объекта должно соответствовать количеству уровней сложности у необходимого Вам монстра. Количество цветов заданное в файле-настройках .xml имеет приоритет над теми, что мы задаем в объекте.''<br />
*'''Уровень''' - номер уровня.<br />
*'''Кол-во цветов''' - число цветов на поле.<br />
*'''Шаги до наезда''' - число шагов до наезда.<br />
*'''Бомба мина: вероятность''' - вероятность появления мины в процентах.<br />
*'''Бомба мина: радиус''' - радиус мины в шариках.<br />
*'''Бомба ядро:вероятность''' - вероятность появления ядра в процентах.<br />
*'''Бомба ядро: число отскоков от стен''' - число отскоков ядра от стен поля.<br />
*'''Бомба цвет: количество''' - число бомб-цвет, которые появятся на уровне.<br />
*'''Бомба цвет: шаги''' - число шагов вначале уровня до появления бомбы-цвет.<br />
<br />
<br />
===[[Файл:+.png]] Визуализатор общих очков===<br />
*'''Объект''' - счетчик, прогресс, показывающий сумму очков за уровень.<br />
<br />
<br />
===[[Файл:+.png]] Игра выиграна: изменить состояние объекта===<br />
*'''Объект''' - объект, состояние которого меняем при выигрыше.<br />
*'''Состояние''' - новое состояние объекта.<br />
<br />
<br />
===[[Файл:+.png]] Игра выиграна: изменить параметр объекта===<br />
*'''Объект''' - объект, параметр которого меняем при выигрыше.<br />
*'''Параметр''' - параметр, который меняем.<br />
*'''Значение''' - новое значение параметра.<br />
<br />
<br />
===[[Файл:+.png]] Игра проиграна: изменить состояние объекта===<br />
*'''Объект''' - объект, состояние которого меняем при проигрыше.<br />
*'''Состояние''' - новое состояние объекта.<br />
<br />
===[[Файл:+.png]] Игра проиграна: изменить параметр объекта===<br />
*'''Объект''' - объект, параметр которого меняем при проигрыше.<br />
*'''Параметр''' - параметр, который меняем.<br />
*'''Значение''' - новое значение параметра.<br />
<br />
<br />
===[[Файл:+.png]] Выбили цвет: изменить состояние объекта===<br />
*'''Объект''' - объект, состояние которого меняем при удалении цвета с поля. При этом BSh передает указанному объекту параметр ''param_removed_colors'' со значением количества выбитых цветов за данный ход.<br />
*'''Состояние''' - новое состояние объекта.<br />
<br />
<br />
=Хинты=<br />
*'''Замена шарика''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=0, после чего передать состояние hint.<br />
*'''Удаление цвета''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=5, после чего передать состояние hint.<br />
*'''Ядро''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=3, после чего передать состояние hint.<br />
*'''Мина''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=1, после чего передать состояние hint.<br />
*'''Курсор''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=0, после чего передать состояние cur_on. После выстрела курсор исчезает.<br />
<br />
<br />
=Пример проекта=<br />
S:\!MOBILE\!!!EditorGames\Wiki_sample\bubble_snooker_graphprogress.zip<br />
<br />
<br />
=Пример реализации: задание уровня=<br />
<br />
::'''1)''' Если нам необходимо задать уровень шутеру прямиком из экрана где он находиться, и при этом он уже запустился (прорисовалась графика). То с начало мы должны передать ему состояние end, после чего задать необходимый уровень и переинитить сцену на которой он находиться (желательно чтобы на этой сцене был только шутер):<br />
<br />
[[Файл:Bubble change level.png|centre]]<br />
<br />
<br />
::'''2)''' Если же, мы задаем нужный уровень удалённо ( с другого экрана), то мы расшариваем экран с самим шутером на сцену где будем задавать ему новый уровень. И на том экране (удалённом) задаём шутеру нужный уровень (levelNum). <br />
<br />
[[Category:Game mechanic]]</div>Iskoroboghttps://wiki.appsalutecreator.com/index.php?title=Bubble_Shooter&diff=8612Bubble Shooter2017-03-15T08:11:24Z<p>Iskorobog: /* Ядро */</p>
<hr />
<div>{{TOC right}}<br />
Игровая механика BubbleShooter.<br />
<br />
=BubbleShooter Setup=<br />
'''Общие настройки'''<br />
*''' память''' - (memo) Если 1, то при повторном открытии экрана объект не обновляет свои параметры (помнит текущие параметры, оставшиеся от предыдущего посещения экрана)<br />
*'''res''' - графичесий ресурс поля для игры. Его размер является зоной для тапа.<br />
*'''Слушатель''' - объект типа Matchbattle.<br />
<br />
'''Группа - Сохранения'''<br />
*'''нужны''' - если '''да''', то сохраняет результаты игры в опции.<br />
*'''сохранять глобально''' - (prof) Если ==0, то значение будет сохранено в текущий профиль, если 1 - то глобально.<br />
*'''место''' - место в опциях, куда сохраняются данные игры.<br />
*'''флаг старых сейвов''' - (old_records) Место в опциях, куда пишем флаг 1 , когда считали и отправили сейвы со старого бабл шутера<br />
<br />
<br />
=Графика=<br />
*'''красные шарики''' - графический ресурс шарика данного цвета.<br />
*'''зеленые шарики''' - графический ресурс шарика данного цвета.<br />
*'''синие шарики''' - графический ресурс шарика данного цвета.<br />
*'''желтые шарики''' - графический ресурс шарика данного цвета.<br />
*'''голубые шарики''' - графический ресурс шарика данного цвета.<br />
*'''пурпурные шарики''' - графический ресурс шарика данного цвета.<br />
<br />
<br />
=Прицел=<br />
*'''res''' - Графический ресурс прицела, перетаскивается из редактора ресурсов.<br />
*'''Время''' - Время от нажатия до момента появления прицела.<br />
*'''Время перед мувом''' - Время от нажатия до момента появления прицела в движении.<br />
*'''Смещение''' - Расстояние между пальцем и центром прицела.<br />
<br />
<br />
=Курсор=<br />
*'''res''' - Графический ресурс курсора, перетаскивается из редактора ресурсов.<br />
*'''Кол-во шариков''' - количество шариков в курсоре.<br />
*'''Отражения''' - максимальное кол-во отражений от стенок.<br />
*'''минимальный скейл''' - (curminsc) минимальный скейл графики шариков<br />
*'''максимальный скейл''' - (curmaxsc) максимальный скейл графики шариков<br />
*'''время скалирования''' - (cursctm) время скалирования шариков<br />
<br />
<br />
=Эффекты=<br />
*'''Удар бомбы об гвоздь''' - объект, запускаемый на месте удара бомбы об гвоздь.<br />
*'''Удар шара об гвоздь''' - объект, запускаемый на месте удара шарика об гвоздь.<br />
*'''Очки в намберсах''' - объект, запускаемый в месте лопанья шариков.<br />
*'''Очки в намберсах 2''' - объект с финальными очками, летящими в цель.<br />
<br />
<br />
=Слушатели=<br />
*'''Выстрел''' - объект, которому передаются нижеследующие состояния при выстреле из пушки. Состояния: '''shot''' - выстрел обычным шариком, '''mine''' - выстрел миной, '''color''' - выстрел цветной бомбой, '''bullet''' - выстрел бомбой-ядром.<br />
<br />
<br />
=Настройки=<br />
[[Файл:02-01-2014 13-40-18.png|250px|thumb|right]]<br />
*'''Позиция стреляющего''' - Позиция стреляющего шарика (x;y)<br />
*'''Расстояние от следующего''' - Расстояние от стреляющего шарика до следующего за ним.<br />
*'''Высота физической сетки''' - Высота физической сетки поля.<br />
*'''Ширина физической сетки''' - Ширина физической сетки поля.<br />
*'''Смещение''' - Смешение поля относительно начала координат родителя.<br />
*'''Радиус шариков''' - Радиус шариков.<br />
*'''Мин.радиус шариков''' - Мин.размер шариков во время "взрыва".<br />
*'''Макс.радиус шариков''' - Макс.размер шариков во время "взрыва".<br />
*'''Ширина шариков''' - Ширина шариков на поле. Вычисляется по формуле (2R+2).<br />
*'''Высота шариков''' - Высота шариков на поле. Вычисляется по формуле (2R-2).<br />
*'''номер фрейма графики шариков''' - (clip_frame) Номер фрейма в клипе графики шариков.<br />
*'''Мин.энергия''' - Мин.энергия выстрела. (или что-то в этом духе, более точной информацией обладает только создатель оригинального кода баббла)<br />
*'''Макс.энергия''' - Макс.энергия выстрела.<br />
*'''убирать выбитый цвет из пушки''' - (fbub1) Убирать выбитый цвет из пушки (нет=0, да=1).<br />
*'''Уровень''' - Уровень игры: новичок, любитель, эксперт, мастер, кастомный (настройки уровня сложности зависят от параметров заданных в добавляемом поле "уровень сложности")<br />
*'''Вид игры''' - Режим игры: аркада, стратегия. Режим Аркада был создан для моды "битва", в котором предусматривалось добавление доп.рядов через определенное время бездействия игрока.<br />
[[Файл:02-01-2014 10-04-52.png|250px|thumb|right]]<br />
*'''Начальные шаги до наезда''' - Количество шагов через которое поле "накажет" игрока дополнительными рядами.<br />
*'''Промежутки добавления''' - Время через которое будут добавляться следующий ряд (в режиме Аркада).<br />
*'''Добавление рядов''' - Разрешить добавление рядов. Иначе только извне. Целесообразно использовать в снукере.<br />
*'''Тип досыпания''' - Тип досыпания шариков. Снукер или классический бабблшутер.<br />
*'''подтип классического досыпания''' - (addrowt) Вид классического досыпания шариков (нормальное=0,с заполнениями пустот=1).<br />
*'''Обваливать висячие''' - Обваливать висячие шарики (да/нет). Отключение этого параметра используется в игре снукер.<br />
*'''Отскок от потолка''' - Название говорит само за себя. Используется в снукере.<br />
*'''Файл-описание уровня''' - Файл формата .xml в котором будет построены уровни для игры. Пример приведен справа.<br />
*'''Номер уровня в файле''' - Стартовый уровень, с которого будет начинаться игра.<br />
*'''матч по цифрам''' - (nummatch) Матч по цифрам (нет=0, да=1).<br />
*'''multColor''' - (multColor) умножать число сматченых шариков на номер цвета при подсчете очков (нет=0, да=1).<br />
*'''removeDropWait''' - (removeDropWait) <br />
*'''объект подложки''' - (objback) Объект подлжоки, которой будет передана графика и состояни выстрела и его окончания.<br />
*'''включить анти-чит''' - (anti_cheat) Включить проверку на чит (нет=0, да=1).<br />
*'''собирать статистику''' - (collec_stat) Включить сбор статистики (нет=0, да=1).<br />
*'''складывать строки''' - (is_summing) Включить сбор статистики (нет=0, да=1).Складывать ли наезжающие строки при выбивании нескольких цветов.<br />
<br />
=настройки Lost Numbers=<br />
*'''время перекрашивания''' - (lnreptm)<br />
*'''макс скейл перекрашивания''' - (lnrepmaxsc)<br />
*'''перекрашивать сразу''' - (lnrepimm) нет=0, да=1<br />
<br />
<br />
=Параметры бомб=<br />
===Мина===<br />
[[Файл:02-01-2014 13-37-11.png|250px|thumb|right]]<br />
*'''res''' - Графический ресурс мины в пушке.<br />
*'''res1''' - Графический ресурс мины в полете.<br />
*'''подложка''' - (bomb1bg) Графический ресурс для подложки бомбы (взрыв по радиусу).<br />
*'''Вероятность''' - Вероятность появления данной бомбы.<br />
*'''Скип''' - Количество пропущенных первых шагов для появления бомбы (не реализовано).<br />
*'''Количество''' - Количество появления бомбы за одну игровую сессию.<br />
*'''Шаги''' - Количество шагов до появления данной бомбы.<br />
*'''Шаги ok''' - Количество удачных шагов до появления бомбы.<br />
*'''Шаги miss''' - Количество неудачных шагов до появления бомбы.<br />
*'''n1''' - Минимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''n2''' - Максимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''Радиус''' - Радиус взрыва данной бомбы<br />
*'''Эффект''' - Эффект на месте взрыва бомбы. Объект должен иметь состояние beg.<br />
<br />
===Цвет===<br />
*'''res''' - Графический ресурс бомбы-цвет в пушке.<br />
*'''res1''' - Графический ресурс бомбы-цвет в полете.<br />
*'''подложка''' - (bomb2bg) Графический ресурс для подложки бомбы 2 (взрыв шариков одного цвета).<br />
*'''Вероятность''' - Вероятность появления данной бомбы.<br />
*'''Скип''' - Количество пропущенных первых шагов для появления бомбы (не реализовано).<br />
*'''Количество''' - Количество появления бомбы за одну игровую сессию.<br />
*'''Шаги''' - Количество шагов до появления данной бомбы.<br />
*'''Шаги ok''' - Количество удачных шагов до появления бомбы.<br />
*'''Шаги miss''' - Количество неудачных шагов до появления бомбы.<br />
*'''n1''' - Минимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''n2''' - Максимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
<br />
===Ядро===<br />
*'''res''' - Графический ресурс ядра в пушке.<br />
*'''res1''' - Графический ресурс ядра в полете.<br />
*'''подложка''' - (bomb3bg) Графический ресурс для подложки бомбы 3 (летит и взрывает все вокруг себя).<br />
*'''Вероятность''' - Вероятность появления данной бомбы.<br />
*'''Скип''' - Количество пропущенных первых шагов для появления бомбы (не реализовано).<br />
*'''Количество''' - Количество появления бомбы за одну игровую сессию.<br />
*'''Шаги''' - Количество шагов до появления данной бомбы.<br />
*'''Шаги ok''' - Количество удачных шагов до появления бомбы.<br />
*'''Шаги miss''' - Количество неудачных шагов до появления бомбы.<br />
*'''n1''' - Минимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''n2''' - Максимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''Флайер''' - Флайер летящий под бомбочкой.<br />
*'''Флайер 2''' - Флайер летящий под бомбочкой.<br />
*'''Скорость''' - Скорость перемещения бомбочки.<br />
*'''Число отскоков''' - Число отскоков от стен для бомбочки.<br />
<br />
=Звуки=<br />
*'''shot''' - Звук выстрела.<br />
*'''fail''' - Звук промаха.<br />
*'''explosion''' - Звук взрыва шариков.<br />
*'''intro''' - Звук в начале игры.<br />
*'''game over''' - Звук окончания игры.<br />
*'''bomb mine''' - Звук выстрела бомбы "мина".<br />
*'''bomb bullet''' - Звук выстрела бомбы "ядро".<br />
*'''bomb color''' - Звук выстрела бомбы "цвет".<br />
*'''Взрыв бомбы мина''' - Говорит само за себя.<br />
*'''Взрыв бомбы ядро''' - Говорит само за себя.<br />
*'''Взрыв бомбы цвет''' - Говорит само за себя.<br />
<br />
<br />
=Очковая система=<br />
*'''Тип''' - ''classic'', ''lostnumbers'', ''nightopera''<br />
*'''Визуализатор шагов''' - счетчик, прогресс, которые отображает оставшееся количество шагов до "наезда".<br />
*'''Визуализатор последних очков''' - счетчик, таймер, прогресс последних очков.<br />
*'''Аниматор последних очков''' - машина со счетчиком (подобъектом), которая запускается в месте попадания шарика. Должна иметь состояние ''show''.<br />
*'''Тип подсчета''' - очки могут считаться как: 1) количество сматченных шариков * на kBub; 2) сумма порядковых номеров (сматчили 4 шарика -> очки = 1+2+3+4)<br />
*'''kBub''' - коэффициент за сматченные шарики.<br />
*'''kCmb''' - коэффициент за комбо.<br />
*'''kMov''' - коэффициент за оставшиеся ходы.<br />
*'''kTim''' - коэффициент за оставшиеся секунды.<br />
*'''kPst''' - коэффициент за удаленные с поля вредители.<br />
*'''kSnw''' - коэффициент за удаленные с поля снежинки.<br />
<br />
<br />
= Состояния =<br />
*'''pause''' - перевести объект в паузу; <br />
*'''resume''' - вытащить объект из паузы;<br />
*'''hint''' - выполнить хинт ( нужно в поле hntt указать номер хинта);<br />
*'''gover''' - <br />
*'''game_continue''' - продолжить игру (например, в случае, когда мы проиграли, но даем игроку шанс, убрав несколько нижних линий);<br />
*'''game_lose''' - задекларировать проигрыш (например, когда мы проиграли, и игрок отказался от шанса продолжить игру);<br />
*'''cur_on''' - отображать траекторию при прицеливании;<br />
*'''cur_off''' - убрать траекторию при прицеливании;<br />
*'''fbubswap''' - поменять местами шарики в пушке;<br />
*'''del_bottom''' - удалить несколько (задается параметром) нижних рядов;<br />
*'''effdigsc2''' - <br />
*'''update_params''' - обновить параметры объекта(пока только номер фрейма клипа шариков);<br />
*'''reset_game''' - сбросит игру , которая сохранена в опциях;<br />
*'''send_stat''' - отправить статистику.<br />
<br />
<br />
<br />
<br />
=Добавляемые параметры=<br />
<br />
===[[Файл:+.png]] Графический ресурс===<br />
*'''Клип''' - Графический ресурс, перетаскивается из редактора ресурсов.<br />
*'''Номер цвета''' - Номер цвета, который будет соответствовать значению цвета в файле-уровня.<br />
<br />
<br />
===[[Файл:+.png]] Ресурсы функциональных шариков===<br />
[[Файл:03-02-2014 10-35-45.png|200px|thumb|right]]<br />
*'''Функционал''' - Записываем значение чудо-шарика из файла-настроек.<br />
*'''Клип''' - Графический ресурс шариков, обладающих данным функционалом.<br />
*'''Звук''' - Звук шарика, обладающего данным функционалом.<br />
*'''Эффект''' - Машина/Патикл обладающие состоянием beg.<br />
<br />
<br />
===[[Файл:+.png]] Параметры анимации для шарика лунка===<br />
*'''Время перемещения''' - время движения шарика в центр лунки.<br />
*'''Время исчезновения''' - время исчезновения шарика в лунке (скейл).<br />
*'''Время жизни''' - время жизни эффекта.<br />
<br />
<br />
===[[Файл:+.png]] Параметры анимации для шарика колючка===<br />
*'''Время жизни''' - время жизни эффекта.<br />
<br />
<br />
===[[Файл:+.png]] Параметры анимации для шарика снежинка===<br />
*'''Время жизни''' - время жизни эффекта.<br />
<br />
<br />
===[[Файл:+.png]] Параметры анимации для шарика вредитель===<br />
*'''Время жизни''' - время жизни эффекта.<br />
*'''Время ожидания скина''' - время, пока поменяется скин шарика.<br />
*'''Эффект''' - эффект, возникающий в момент обрастания вредителя снежинками.<br />
<br />
<br />
===[[Файл:+.png]] Физика===<br />
[[Файл:02-01-2014 13-57-15.png|250px|thumb|right]]<br />
*'''Справа находится пример настроек физики для шариков радиусом 24.'''<br />
*'''Move''' - Коэффициент отталкивания летящего шарика.<br />
*'''MinDest2''' - Квадрат минимального расстояния, когда шарик считается в покое.<br />
*'''MinVel2''' - Квадрат минимальной скорости, когда шарик считается в покое.<br />
*'''Down''' - Трение.<br />
*'''MaxVel''' - Максимальная скорость колебаний.<br />
*'''Elast''' - Эластичность с-мы (коэффициент для сил действующих между соседними шариками).<br />
*'''Glue''' - Коэффициент притяжения шарика к центру ячейки.<br />
*'''MoveC''' - Радиус действия летящего шарика в ячейках.<br />
*'''BangVel''' - Приращение для скорости взрыва.<br />
<br />
<br />
===[[Файл:+.png]] Уровень сложности===<br />
''Название параметров говорит само за себя. Создавать их можно бесконечное множество, главное не забывать назначать им порядковые номера в поле "уровень" по мере добавления новых уровней. Количество уровней сложности внутри объекта должно соответствовать количеству уровней сложности у необходимого Вам монстра. Количество цветов заданное в файле-настройках .xml имеет приоритет над теми, что мы задаем в объекте.''<br />
*'''Уровень''' - номер уровня.<br />
*'''Кол-во цветов''' - число цветов на поле.<br />
*'''Шаги до наезда''' - число шагов до наезда.<br />
*'''Бомба мина: вероятность''' - вероятность появления мины в процентах.<br />
*'''Бомба мина: радиус''' - радиус мины в шариках.<br />
*'''Бомба ядро:вероятность''' - вероятность появления ядра в процентах.<br />
*'''Бомба ядро: число отскоков от стен''' - число отскоков ядра от стен поля.<br />
*'''Бомба цвет: количество''' - число бомб-цвет, которые появятся на уровне.<br />
*'''Бомба цвет: шаги''' - число шагов вначале уровня до появления бомбы-цвет.<br />
<br />
<br />
===[[Файл:+.png]] Визуализатор общих очков===<br />
*'''Объект''' - счетчик, прогресс, показывающий сумму очков за уровень.<br />
<br />
<br />
===[[Файл:+.png]] Игра выиграна: изменить состояние объекта===<br />
*'''Объект''' - объект, состояние которого меняем при выигрыше.<br />
*'''Состояние''' - новое состояние объекта.<br />
<br />
<br />
===[[Файл:+.png]] Игра выиграна: изменить параметр объекта===<br />
*'''Объект''' - объект, параметр которого меняем при выигрыше.<br />
*'''Параметр''' - параметр, который меняем.<br />
*'''Значение''' - новое значение параметра.<br />
<br />
<br />
===[[Файл:+.png]] Игра проиграна: изменить состояние объекта===<br />
*'''Объект''' - объект, состояние которого меняем при проигрыше.<br />
*'''Состояние''' - новое состояние объекта.<br />
<br />
===[[Файл:+.png]] Игра проиграна: изменить параметр объекта===<br />
*'''Объект''' - объект, параметр которого меняем при проигрыше.<br />
*'''Параметр''' - параметр, который меняем.<br />
*'''Значение''' - новое значение параметра.<br />
<br />
<br />
===[[Файл:+.png]] Выбили цвет: изменить состояние объекта===<br />
*'''Объект''' - объект, состояние которого меняем при удалении цвета с поля. При этом BSh передает указанному объекту параметр ''param_removed_colors'' со значением количества выбитых цветов за данный ход.<br />
*'''Состояние''' - новое состояние объекта.<br />
<br />
<br />
=Хинты=<br />
*'''Замена шарика''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=0, после чего передать состояние hint.<br />
*'''Удаление цвета''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=5, после чего передать состояние hint.<br />
*'''Ядро''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=3, после чего передать состояние hint.<br />
*'''Мина''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=1, после чего передать состояние hint.<br />
*'''Курсор''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=0, после чего передать состояние cur_on. После выстрела курсор исчезает.<br />
<br />
<br />
=Пример проекта=<br />
S:\!MOBILE\!!!EditorGames\Wiki_sample\bubble_snooker_graphprogress.zip<br />
<br />
<br />
=Пример реализации: задание уровня=<br />
<br />
::'''1)''' Если нам необходимо задать уровень шутеру прямиком из экрана где он находиться, и при этом он уже запустился (прорисовалась графика). То с начало мы должны передать ему состояние end, после чего задать необходимый уровень и переинитить сцену на которой он находиться (желательно чтобы на этой сцене был только шутер):<br />
<br />
[[Файл:Bubble change level.png|centre]]<br />
<br />
<br />
::'''2)''' Если же, мы задаем нужный уровень удалённо ( с другого экрана), то мы расшариваем экран с самим шутером на сцену где будем задавать ему новый уровень. И на том экране (удалённом) задаём шутеру нужный уровень (levelNum). <br />
<br />
[[Category:Game mechanic]]</div>Iskoroboghttps://wiki.appsalutecreator.com/index.php?title=Bubble_Shooter&diff=8611Bubble Shooter2017-03-15T08:08:16Z<p>Iskorobog: /* Цвет */</p>
<hr />
<div>{{TOC right}}<br />
Игровая механика BubbleShooter.<br />
<br />
=BubbleShooter Setup=<br />
'''Общие настройки'''<br />
*''' память''' - (memo) Если 1, то при повторном открытии экрана объект не обновляет свои параметры (помнит текущие параметры, оставшиеся от предыдущего посещения экрана)<br />
*'''res''' - графичесий ресурс поля для игры. Его размер является зоной для тапа.<br />
*'''Слушатель''' - объект типа Matchbattle.<br />
<br />
'''Группа - Сохранения'''<br />
*'''нужны''' - если '''да''', то сохраняет результаты игры в опции.<br />
*'''сохранять глобально''' - (prof) Если ==0, то значение будет сохранено в текущий профиль, если 1 - то глобально.<br />
*'''место''' - место в опциях, куда сохраняются данные игры.<br />
*'''флаг старых сейвов''' - (old_records) Место в опциях, куда пишем флаг 1 , когда считали и отправили сейвы со старого бабл шутера<br />
<br />
<br />
=Графика=<br />
*'''красные шарики''' - графический ресурс шарика данного цвета.<br />
*'''зеленые шарики''' - графический ресурс шарика данного цвета.<br />
*'''синие шарики''' - графический ресурс шарика данного цвета.<br />
*'''желтые шарики''' - графический ресурс шарика данного цвета.<br />
*'''голубые шарики''' - графический ресурс шарика данного цвета.<br />
*'''пурпурные шарики''' - графический ресурс шарика данного цвета.<br />
<br />
<br />
=Прицел=<br />
*'''res''' - Графический ресурс прицела, перетаскивается из редактора ресурсов.<br />
*'''Время''' - Время от нажатия до момента появления прицела.<br />
*'''Время перед мувом''' - Время от нажатия до момента появления прицела в движении.<br />
*'''Смещение''' - Расстояние между пальцем и центром прицела.<br />
<br />
<br />
=Курсор=<br />
*'''res''' - Графический ресурс курсора, перетаскивается из редактора ресурсов.<br />
*'''Кол-во шариков''' - количество шариков в курсоре.<br />
*'''Отражения''' - максимальное кол-во отражений от стенок.<br />
*'''минимальный скейл''' - (curminsc) минимальный скейл графики шариков<br />
*'''максимальный скейл''' - (curmaxsc) максимальный скейл графики шариков<br />
*'''время скалирования''' - (cursctm) время скалирования шариков<br />
<br />
<br />
=Эффекты=<br />
*'''Удар бомбы об гвоздь''' - объект, запускаемый на месте удара бомбы об гвоздь.<br />
*'''Удар шара об гвоздь''' - объект, запускаемый на месте удара шарика об гвоздь.<br />
*'''Очки в намберсах''' - объект, запускаемый в месте лопанья шариков.<br />
*'''Очки в намберсах 2''' - объект с финальными очками, летящими в цель.<br />
<br />
<br />
=Слушатели=<br />
*'''Выстрел''' - объект, которому передаются нижеследующие состояния при выстреле из пушки. Состояния: '''shot''' - выстрел обычным шариком, '''mine''' - выстрел миной, '''color''' - выстрел цветной бомбой, '''bullet''' - выстрел бомбой-ядром.<br />
<br />
<br />
=Настройки=<br />
[[Файл:02-01-2014 13-40-18.png|250px|thumb|right]]<br />
*'''Позиция стреляющего''' - Позиция стреляющего шарика (x;y)<br />
*'''Расстояние от следующего''' - Расстояние от стреляющего шарика до следующего за ним.<br />
*'''Высота физической сетки''' - Высота физической сетки поля.<br />
*'''Ширина физической сетки''' - Ширина физической сетки поля.<br />
*'''Смещение''' - Смешение поля относительно начала координат родителя.<br />
*'''Радиус шариков''' - Радиус шариков.<br />
*'''Мин.радиус шариков''' - Мин.размер шариков во время "взрыва".<br />
*'''Макс.радиус шариков''' - Макс.размер шариков во время "взрыва".<br />
*'''Ширина шариков''' - Ширина шариков на поле. Вычисляется по формуле (2R+2).<br />
*'''Высота шариков''' - Высота шариков на поле. Вычисляется по формуле (2R-2).<br />
*'''номер фрейма графики шариков''' - (clip_frame) Номер фрейма в клипе графики шариков.<br />
*'''Мин.энергия''' - Мин.энергия выстрела. (или что-то в этом духе, более точной информацией обладает только создатель оригинального кода баббла)<br />
*'''Макс.энергия''' - Макс.энергия выстрела.<br />
*'''убирать выбитый цвет из пушки''' - (fbub1) Убирать выбитый цвет из пушки (нет=0, да=1).<br />
*'''Уровень''' - Уровень игры: новичок, любитель, эксперт, мастер, кастомный (настройки уровня сложности зависят от параметров заданных в добавляемом поле "уровень сложности")<br />
*'''Вид игры''' - Режим игры: аркада, стратегия. Режим Аркада был создан для моды "битва", в котором предусматривалось добавление доп.рядов через определенное время бездействия игрока.<br />
[[Файл:02-01-2014 10-04-52.png|250px|thumb|right]]<br />
*'''Начальные шаги до наезда''' - Количество шагов через которое поле "накажет" игрока дополнительными рядами.<br />
*'''Промежутки добавления''' - Время через которое будут добавляться следующий ряд (в режиме Аркада).<br />
*'''Добавление рядов''' - Разрешить добавление рядов. Иначе только извне. Целесообразно использовать в снукере.<br />
*'''Тип досыпания''' - Тип досыпания шариков. Снукер или классический бабблшутер.<br />
*'''подтип классического досыпания''' - (addrowt) Вид классического досыпания шариков (нормальное=0,с заполнениями пустот=1).<br />
*'''Обваливать висячие''' - Обваливать висячие шарики (да/нет). Отключение этого параметра используется в игре снукер.<br />
*'''Отскок от потолка''' - Название говорит само за себя. Используется в снукере.<br />
*'''Файл-описание уровня''' - Файл формата .xml в котором будет построены уровни для игры. Пример приведен справа.<br />
*'''Номер уровня в файле''' - Стартовый уровень, с которого будет начинаться игра.<br />
*'''матч по цифрам''' - (nummatch) Матч по цифрам (нет=0, да=1).<br />
*'''multColor''' - (multColor) умножать число сматченых шариков на номер цвета при подсчете очков (нет=0, да=1).<br />
*'''removeDropWait''' - (removeDropWait) <br />
*'''объект подложки''' - (objback) Объект подлжоки, которой будет передана графика и состояни выстрела и его окончания.<br />
*'''включить анти-чит''' - (anti_cheat) Включить проверку на чит (нет=0, да=1).<br />
*'''собирать статистику''' - (collec_stat) Включить сбор статистики (нет=0, да=1).<br />
*'''складывать строки''' - (is_summing) Включить сбор статистики (нет=0, да=1).Складывать ли наезжающие строки при выбивании нескольких цветов.<br />
<br />
=настройки Lost Numbers=<br />
*'''время перекрашивания''' - (lnreptm)<br />
*'''макс скейл перекрашивания''' - (lnrepmaxsc)<br />
*'''перекрашивать сразу''' - (lnrepimm) нет=0, да=1<br />
<br />
<br />
=Параметры бомб=<br />
===Мина===<br />
[[Файл:02-01-2014 13-37-11.png|250px|thumb|right]]<br />
*'''res''' - Графический ресурс мины в пушке.<br />
*'''res1''' - Графический ресурс мины в полете.<br />
*'''подложка''' - (bomb1bg) Графический ресурс для подложки бомбы (взрыв по радиусу).<br />
*'''Вероятность''' - Вероятность появления данной бомбы.<br />
*'''Скип''' - Количество пропущенных первых шагов для появления бомбы (не реализовано).<br />
*'''Количество''' - Количество появления бомбы за одну игровую сессию.<br />
*'''Шаги''' - Количество шагов до появления данной бомбы.<br />
*'''Шаги ok''' - Количество удачных шагов до появления бомбы.<br />
*'''Шаги miss''' - Количество неудачных шагов до появления бомбы.<br />
*'''n1''' - Минимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''n2''' - Максимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''Радиус''' - Радиус взрыва данной бомбы<br />
*'''Эффект''' - Эффект на месте взрыва бомбы. Объект должен иметь состояние beg.<br />
<br />
===Цвет===<br />
*'''res''' - Графический ресурс бомбы-цвет в пушке.<br />
*'''res1''' - Графический ресурс бомбы-цвет в полете.<br />
*'''подложка''' - (bomb2bg) Графический ресурс для подложки бомбы 2 (взрыв шариков одного цвета).<br />
*'''Вероятность''' - Вероятность появления данной бомбы.<br />
*'''Скип''' - Количество пропущенных первых шагов для появления бомбы (не реализовано).<br />
*'''Количество''' - Количество появления бомбы за одну игровую сессию.<br />
*'''Шаги''' - Количество шагов до появления данной бомбы.<br />
*'''Шаги ok''' - Количество удачных шагов до появления бомбы.<br />
*'''Шаги miss''' - Количество неудачных шагов до появления бомбы.<br />
*'''n1''' - Минимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''n2''' - Максимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
<br />
===Ядро===<br />
*'''res''' - Графический ресурс ядра в пушке.<br />
*'''res1''' - Графический ресурс ядра в полете.<br />
*'''Вероятность''' - Вероятность появления данной бомбы.<br />
*'''Скип''' - Количество пропущенных первых шагов для появления бомбы (не реализовано).<br />
*'''Количество''' - Количество появления бомбы за одну игровую сессию.<br />
*'''Шаги''' - Количество шагов до появления данной бомбы.<br />
*'''Шаги ok''' - Количество удачных шагов до появления бомбы.<br />
*'''Шаги miss''' - Количество неудачных шагов до появления бомбы.<br />
*'''n1''' - Минимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''n2''' - Максимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''Флайер''' - Флайер летящий под бомбочкой.<br />
*'''Флайер 2''' - Флайер летящий под бомбочкой.<br />
*'''Скорость''' - Скорость перемещения бомбочки.<br />
*'''Число отскоков''' - Число отскоков от стен для бомбочки.<br />
<br />
<br />
=Звуки=<br />
*'''shot''' - Звук выстрела.<br />
*'''fail''' - Звук промаха.<br />
*'''explosion''' - Звук взрыва шариков.<br />
*'''intro''' - Звук в начале игры.<br />
*'''game over''' - Звук окончания игры.<br />
*'''bomb mine''' - Звук выстрела бомбы "мина".<br />
*'''bomb bullet''' - Звук выстрела бомбы "ядро".<br />
*'''bomb color''' - Звук выстрела бомбы "цвет".<br />
*'''Взрыв бомбы мина''' - Говорит само за себя.<br />
*'''Взрыв бомбы ядро''' - Говорит само за себя.<br />
*'''Взрыв бомбы цвет''' - Говорит само за себя.<br />
<br />
<br />
=Очковая система=<br />
*'''Тип''' - ''classic'', ''lostnumbers'', ''nightopera''<br />
*'''Визуализатор шагов''' - счетчик, прогресс, которые отображает оставшееся количество шагов до "наезда".<br />
*'''Визуализатор последних очков''' - счетчик, таймер, прогресс последних очков.<br />
*'''Аниматор последних очков''' - машина со счетчиком (подобъектом), которая запускается в месте попадания шарика. Должна иметь состояние ''show''.<br />
*'''Тип подсчета''' - очки могут считаться как: 1) количество сматченных шариков * на kBub; 2) сумма порядковых номеров (сматчили 4 шарика -> очки = 1+2+3+4)<br />
*'''kBub''' - коэффициент за сматченные шарики.<br />
*'''kCmb''' - коэффициент за комбо.<br />
*'''kMov''' - коэффициент за оставшиеся ходы.<br />
*'''kTim''' - коэффициент за оставшиеся секунды.<br />
*'''kPst''' - коэффициент за удаленные с поля вредители.<br />
*'''kSnw''' - коэффициент за удаленные с поля снежинки.<br />
<br />
<br />
= Состояния =<br />
*'''pause''' - перевести объект в паузу; <br />
*'''resume''' - вытащить объект из паузы;<br />
*'''hint''' - выполнить хинт ( нужно в поле hntt указать номер хинта);<br />
*'''gover''' - <br />
*'''game_continue''' - продолжить игру (например, в случае, когда мы проиграли, но даем игроку шанс, убрав несколько нижних линий);<br />
*'''game_lose''' - задекларировать проигрыш (например, когда мы проиграли, и игрок отказался от шанса продолжить игру);<br />
*'''cur_on''' - отображать траекторию при прицеливании;<br />
*'''cur_off''' - убрать траекторию при прицеливании;<br />
*'''fbubswap''' - поменять местами шарики в пушке;<br />
*'''del_bottom''' - удалить несколько (задается параметром) нижних рядов;<br />
*'''effdigsc2''' - <br />
*'''update_params''' - обновить параметры объекта(пока только номер фрейма клипа шариков);<br />
*'''reset_game''' - сбросит игру , которая сохранена в опциях;<br />
*'''send_stat''' - отправить статистику.<br />
<br />
<br />
<br />
<br />
=Добавляемые параметры=<br />
<br />
===[[Файл:+.png]] Графический ресурс===<br />
*'''Клип''' - Графический ресурс, перетаскивается из редактора ресурсов.<br />
*'''Номер цвета''' - Номер цвета, который будет соответствовать значению цвета в файле-уровня.<br />
<br />
<br />
===[[Файл:+.png]] Ресурсы функциональных шариков===<br />
[[Файл:03-02-2014 10-35-45.png|200px|thumb|right]]<br />
*'''Функционал''' - Записываем значение чудо-шарика из файла-настроек.<br />
*'''Клип''' - Графический ресурс шариков, обладающих данным функционалом.<br />
*'''Звук''' - Звук шарика, обладающего данным функционалом.<br />
*'''Эффект''' - Машина/Патикл обладающие состоянием beg.<br />
<br />
<br />
===[[Файл:+.png]] Параметры анимации для шарика лунка===<br />
*'''Время перемещения''' - время движения шарика в центр лунки.<br />
*'''Время исчезновения''' - время исчезновения шарика в лунке (скейл).<br />
*'''Время жизни''' - время жизни эффекта.<br />
<br />
<br />
===[[Файл:+.png]] Параметры анимации для шарика колючка===<br />
*'''Время жизни''' - время жизни эффекта.<br />
<br />
<br />
===[[Файл:+.png]] Параметры анимации для шарика снежинка===<br />
*'''Время жизни''' - время жизни эффекта.<br />
<br />
<br />
===[[Файл:+.png]] Параметры анимации для шарика вредитель===<br />
*'''Время жизни''' - время жизни эффекта.<br />
*'''Время ожидания скина''' - время, пока поменяется скин шарика.<br />
*'''Эффект''' - эффект, возникающий в момент обрастания вредителя снежинками.<br />
<br />
<br />
===[[Файл:+.png]] Физика===<br />
[[Файл:02-01-2014 13-57-15.png|250px|thumb|right]]<br />
*'''Справа находится пример настроек физики для шариков радиусом 24.'''<br />
*'''Move''' - Коэффициент отталкивания летящего шарика.<br />
*'''MinDest2''' - Квадрат минимального расстояния, когда шарик считается в покое.<br />
*'''MinVel2''' - Квадрат минимальной скорости, когда шарик считается в покое.<br />
*'''Down''' - Трение.<br />
*'''MaxVel''' - Максимальная скорость колебаний.<br />
*'''Elast''' - Эластичность с-мы (коэффициент для сил действующих между соседними шариками).<br />
*'''Glue''' - Коэффициент притяжения шарика к центру ячейки.<br />
*'''MoveC''' - Радиус действия летящего шарика в ячейках.<br />
*'''BangVel''' - Приращение для скорости взрыва.<br />
<br />
<br />
===[[Файл:+.png]] Уровень сложности===<br />
''Название параметров говорит само за себя. Создавать их можно бесконечное множество, главное не забывать назначать им порядковые номера в поле "уровень" по мере добавления новых уровней. Количество уровней сложности внутри объекта должно соответствовать количеству уровней сложности у необходимого Вам монстра. Количество цветов заданное в файле-настройках .xml имеет приоритет над теми, что мы задаем в объекте.''<br />
*'''Уровень''' - номер уровня.<br />
*'''Кол-во цветов''' - число цветов на поле.<br />
*'''Шаги до наезда''' - число шагов до наезда.<br />
*'''Бомба мина: вероятность''' - вероятность появления мины в процентах.<br />
*'''Бомба мина: радиус''' - радиус мины в шариках.<br />
*'''Бомба ядро:вероятность''' - вероятность появления ядра в процентах.<br />
*'''Бомба ядро: число отскоков от стен''' - число отскоков ядра от стен поля.<br />
*'''Бомба цвет: количество''' - число бомб-цвет, которые появятся на уровне.<br />
*'''Бомба цвет: шаги''' - число шагов вначале уровня до появления бомбы-цвет.<br />
<br />
<br />
===[[Файл:+.png]] Визуализатор общих очков===<br />
*'''Объект''' - счетчик, прогресс, показывающий сумму очков за уровень.<br />
<br />
<br />
===[[Файл:+.png]] Игра выиграна: изменить состояние объекта===<br />
*'''Объект''' - объект, состояние которого меняем при выигрыше.<br />
*'''Состояние''' - новое состояние объекта.<br />
<br />
<br />
===[[Файл:+.png]] Игра выиграна: изменить параметр объекта===<br />
*'''Объект''' - объект, параметр которого меняем при выигрыше.<br />
*'''Параметр''' - параметр, который меняем.<br />
*'''Значение''' - новое значение параметра.<br />
<br />
<br />
===[[Файл:+.png]] Игра проиграна: изменить состояние объекта===<br />
*'''Объект''' - объект, состояние которого меняем при проигрыше.<br />
*'''Состояние''' - новое состояние объекта.<br />
<br />
===[[Файл:+.png]] Игра проиграна: изменить параметр объекта===<br />
*'''Объект''' - объект, параметр которого меняем при проигрыше.<br />
*'''Параметр''' - параметр, который меняем.<br />
*'''Значение''' - новое значение параметра.<br />
<br />
<br />
===[[Файл:+.png]] Выбили цвет: изменить состояние объекта===<br />
*'''Объект''' - объект, состояние которого меняем при удалении цвета с поля. При этом BSh передает указанному объекту параметр ''param_removed_colors'' со значением количества выбитых цветов за данный ход.<br />
*'''Состояние''' - новое состояние объекта.<br />
<br />
<br />
=Хинты=<br />
*'''Замена шарика''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=0, после чего передать состояние hint.<br />
*'''Удаление цвета''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=5, после чего передать состояние hint.<br />
*'''Ядро''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=3, после чего передать состояние hint.<br />
*'''Мина''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=1, после чего передать состояние hint.<br />
*'''Курсор''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=0, после чего передать состояние cur_on. После выстрела курсор исчезает.<br />
<br />
<br />
=Пример проекта=<br />
S:\!MOBILE\!!!EditorGames\Wiki_sample\bubble_snooker_graphprogress.zip<br />
<br />
<br />
=Пример реализации: задание уровня=<br />
<br />
::'''1)''' Если нам необходимо задать уровень шутеру прямиком из экрана где он находиться, и при этом он уже запустился (прорисовалась графика). То с начало мы должны передать ему состояние end, после чего задать необходимый уровень и переинитить сцену на которой он находиться (желательно чтобы на этой сцене был только шутер):<br />
<br />
[[Файл:Bubble change level.png|centre]]<br />
<br />
<br />
::'''2)''' Если же, мы задаем нужный уровень удалённо ( с другого экрана), то мы расшариваем экран с самим шутером на сцену где будем задавать ему новый уровень. И на том экране (удалённом) задаём шутеру нужный уровень (levelNum). <br />
<br />
[[Category:Game mechanic]]</div>Iskoroboghttps://wiki.appsalutecreator.com/index.php?title=Bubble_Shooter&diff=8610Bubble Shooter2017-03-15T08:06:12Z<p>Iskorobog: /* Мина */</p>
<hr />
<div>{{TOC right}}<br />
Игровая механика BubbleShooter.<br />
<br />
=BubbleShooter Setup=<br />
'''Общие настройки'''<br />
*''' память''' - (memo) Если 1, то при повторном открытии экрана объект не обновляет свои параметры (помнит текущие параметры, оставшиеся от предыдущего посещения экрана)<br />
*'''res''' - графичесий ресурс поля для игры. Его размер является зоной для тапа.<br />
*'''Слушатель''' - объект типа Matchbattle.<br />
<br />
'''Группа - Сохранения'''<br />
*'''нужны''' - если '''да''', то сохраняет результаты игры в опции.<br />
*'''сохранять глобально''' - (prof) Если ==0, то значение будет сохранено в текущий профиль, если 1 - то глобально.<br />
*'''место''' - место в опциях, куда сохраняются данные игры.<br />
*'''флаг старых сейвов''' - (old_records) Место в опциях, куда пишем флаг 1 , когда считали и отправили сейвы со старого бабл шутера<br />
<br />
<br />
=Графика=<br />
*'''красные шарики''' - графический ресурс шарика данного цвета.<br />
*'''зеленые шарики''' - графический ресурс шарика данного цвета.<br />
*'''синие шарики''' - графический ресурс шарика данного цвета.<br />
*'''желтые шарики''' - графический ресурс шарика данного цвета.<br />
*'''голубые шарики''' - графический ресурс шарика данного цвета.<br />
*'''пурпурные шарики''' - графический ресурс шарика данного цвета.<br />
<br />
<br />
=Прицел=<br />
*'''res''' - Графический ресурс прицела, перетаскивается из редактора ресурсов.<br />
*'''Время''' - Время от нажатия до момента появления прицела.<br />
*'''Время перед мувом''' - Время от нажатия до момента появления прицела в движении.<br />
*'''Смещение''' - Расстояние между пальцем и центром прицела.<br />
<br />
<br />
=Курсор=<br />
*'''res''' - Графический ресурс курсора, перетаскивается из редактора ресурсов.<br />
*'''Кол-во шариков''' - количество шариков в курсоре.<br />
*'''Отражения''' - максимальное кол-во отражений от стенок.<br />
*'''минимальный скейл''' - (curminsc) минимальный скейл графики шариков<br />
*'''максимальный скейл''' - (curmaxsc) максимальный скейл графики шариков<br />
*'''время скалирования''' - (cursctm) время скалирования шариков<br />
<br />
<br />
=Эффекты=<br />
*'''Удар бомбы об гвоздь''' - объект, запускаемый на месте удара бомбы об гвоздь.<br />
*'''Удар шара об гвоздь''' - объект, запускаемый на месте удара шарика об гвоздь.<br />
*'''Очки в намберсах''' - объект, запускаемый в месте лопанья шариков.<br />
*'''Очки в намберсах 2''' - объект с финальными очками, летящими в цель.<br />
<br />
<br />
=Слушатели=<br />
*'''Выстрел''' - объект, которому передаются нижеследующие состояния при выстреле из пушки. Состояния: '''shot''' - выстрел обычным шариком, '''mine''' - выстрел миной, '''color''' - выстрел цветной бомбой, '''bullet''' - выстрел бомбой-ядром.<br />
<br />
<br />
=Настройки=<br />
[[Файл:02-01-2014 13-40-18.png|250px|thumb|right]]<br />
*'''Позиция стреляющего''' - Позиция стреляющего шарика (x;y)<br />
*'''Расстояние от следующего''' - Расстояние от стреляющего шарика до следующего за ним.<br />
*'''Высота физической сетки''' - Высота физической сетки поля.<br />
*'''Ширина физической сетки''' - Ширина физической сетки поля.<br />
*'''Смещение''' - Смешение поля относительно начала координат родителя.<br />
*'''Радиус шариков''' - Радиус шариков.<br />
*'''Мин.радиус шариков''' - Мин.размер шариков во время "взрыва".<br />
*'''Макс.радиус шариков''' - Макс.размер шариков во время "взрыва".<br />
*'''Ширина шариков''' - Ширина шариков на поле. Вычисляется по формуле (2R+2).<br />
*'''Высота шариков''' - Высота шариков на поле. Вычисляется по формуле (2R-2).<br />
*'''номер фрейма графики шариков''' - (clip_frame) Номер фрейма в клипе графики шариков.<br />
*'''Мин.энергия''' - Мин.энергия выстрела. (или что-то в этом духе, более точной информацией обладает только создатель оригинального кода баббла)<br />
*'''Макс.энергия''' - Макс.энергия выстрела.<br />
*'''убирать выбитый цвет из пушки''' - (fbub1) Убирать выбитый цвет из пушки (нет=0, да=1).<br />
*'''Уровень''' - Уровень игры: новичок, любитель, эксперт, мастер, кастомный (настройки уровня сложности зависят от параметров заданных в добавляемом поле "уровень сложности")<br />
*'''Вид игры''' - Режим игры: аркада, стратегия. Режим Аркада был создан для моды "битва", в котором предусматривалось добавление доп.рядов через определенное время бездействия игрока.<br />
[[Файл:02-01-2014 10-04-52.png|250px|thumb|right]]<br />
*'''Начальные шаги до наезда''' - Количество шагов через которое поле "накажет" игрока дополнительными рядами.<br />
*'''Промежутки добавления''' - Время через которое будут добавляться следующий ряд (в режиме Аркада).<br />
*'''Добавление рядов''' - Разрешить добавление рядов. Иначе только извне. Целесообразно использовать в снукере.<br />
*'''Тип досыпания''' - Тип досыпания шариков. Снукер или классический бабблшутер.<br />
*'''подтип классического досыпания''' - (addrowt) Вид классического досыпания шариков (нормальное=0,с заполнениями пустот=1).<br />
*'''Обваливать висячие''' - Обваливать висячие шарики (да/нет). Отключение этого параметра используется в игре снукер.<br />
*'''Отскок от потолка''' - Название говорит само за себя. Используется в снукере.<br />
*'''Файл-описание уровня''' - Файл формата .xml в котором будет построены уровни для игры. Пример приведен справа.<br />
*'''Номер уровня в файле''' - Стартовый уровень, с которого будет начинаться игра.<br />
*'''матч по цифрам''' - (nummatch) Матч по цифрам (нет=0, да=1).<br />
*'''multColor''' - (multColor) умножать число сматченых шариков на номер цвета при подсчете очков (нет=0, да=1).<br />
*'''removeDropWait''' - (removeDropWait) <br />
*'''объект подложки''' - (objback) Объект подлжоки, которой будет передана графика и состояни выстрела и его окончания.<br />
*'''включить анти-чит''' - (anti_cheat) Включить проверку на чит (нет=0, да=1).<br />
*'''собирать статистику''' - (collec_stat) Включить сбор статистики (нет=0, да=1).<br />
*'''складывать строки''' - (is_summing) Включить сбор статистики (нет=0, да=1).Складывать ли наезжающие строки при выбивании нескольких цветов.<br />
<br />
=настройки Lost Numbers=<br />
*'''время перекрашивания''' - (lnreptm)<br />
*'''макс скейл перекрашивания''' - (lnrepmaxsc)<br />
*'''перекрашивать сразу''' - (lnrepimm) нет=0, да=1<br />
<br />
<br />
=Параметры бомб=<br />
===Мина===<br />
[[Файл:02-01-2014 13-37-11.png|250px|thumb|right]]<br />
*'''res''' - Графический ресурс мины в пушке.<br />
*'''res1''' - Графический ресурс мины в полете.<br />
*'''подложка''' - (bomb1bg) Графический ресурс для подложки бомбы (взрыв по радиусу).<br />
*'''Вероятность''' - Вероятность появления данной бомбы.<br />
*'''Скип''' - Количество пропущенных первых шагов для появления бомбы (не реализовано).<br />
*'''Количество''' - Количество появления бомбы за одну игровую сессию.<br />
*'''Шаги''' - Количество шагов до появления данной бомбы.<br />
*'''Шаги ok''' - Количество удачных шагов до появления бомбы.<br />
*'''Шаги miss''' - Количество неудачных шагов до появления бомбы.<br />
*'''n1''' - Минимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''n2''' - Максимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''Радиус''' - Радиус взрыва данной бомбы<br />
*'''Эффект''' - Эффект на месте взрыва бомбы. Объект должен иметь состояние beg.<br />
<br />
===Цвет===<br />
*'''res''' - Графический ресурс бомбы-цвет в пушке.<br />
*'''res1''' - Графический ресурс бомбы-цвет в полете.<br />
*'''Вероятность''' - Вероятность появления данной бомбы.<br />
*'''Скип''' - Количество пропущенных первых шагов для появления бомбы (не реализовано).<br />
*'''Количество''' - Количество появления бомбы за одну игровую сессию.<br />
*'''Шаги''' - Количество шагов до появления данной бомбы.<br />
*'''Шаги ok''' - Количество удачных шагов до появления бомбы.<br />
*'''Шаги miss''' - Количество неудачных шагов до появления бомбы.<br />
*'''n1''' - Минимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''n2''' - Максимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
<br />
===Ядро===<br />
*'''res''' - Графический ресурс ядра в пушке.<br />
*'''res1''' - Графический ресурс ядра в полете.<br />
*'''Вероятность''' - Вероятность появления данной бомбы.<br />
*'''Скип''' - Количество пропущенных первых шагов для появления бомбы (не реализовано).<br />
*'''Количество''' - Количество появления бомбы за одну игровую сессию.<br />
*'''Шаги''' - Количество шагов до появления данной бомбы.<br />
*'''Шаги ok''' - Количество удачных шагов до появления бомбы.<br />
*'''Шаги miss''' - Количество неудачных шагов до появления бомбы.<br />
*'''n1''' - Минимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''n2''' - Максимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''Флайер''' - Флайер летящий под бомбочкой.<br />
*'''Флайер 2''' - Флайер летящий под бомбочкой.<br />
*'''Скорость''' - Скорость перемещения бомбочки.<br />
*'''Число отскоков''' - Число отскоков от стен для бомбочки.<br />
<br />
<br />
=Звуки=<br />
*'''shot''' - Звук выстрела.<br />
*'''fail''' - Звук промаха.<br />
*'''explosion''' - Звук взрыва шариков.<br />
*'''intro''' - Звук в начале игры.<br />
*'''game over''' - Звук окончания игры.<br />
*'''bomb mine''' - Звук выстрела бомбы "мина".<br />
*'''bomb bullet''' - Звук выстрела бомбы "ядро".<br />
*'''bomb color''' - Звук выстрела бомбы "цвет".<br />
*'''Взрыв бомбы мина''' - Говорит само за себя.<br />
*'''Взрыв бомбы ядро''' - Говорит само за себя.<br />
*'''Взрыв бомбы цвет''' - Говорит само за себя.<br />
<br />
<br />
=Очковая система=<br />
*'''Тип''' - ''classic'', ''lostnumbers'', ''nightopera''<br />
*'''Визуализатор шагов''' - счетчик, прогресс, которые отображает оставшееся количество шагов до "наезда".<br />
*'''Визуализатор последних очков''' - счетчик, таймер, прогресс последних очков.<br />
*'''Аниматор последних очков''' - машина со счетчиком (подобъектом), которая запускается в месте попадания шарика. Должна иметь состояние ''show''.<br />
*'''Тип подсчета''' - очки могут считаться как: 1) количество сматченных шариков * на kBub; 2) сумма порядковых номеров (сматчили 4 шарика -> очки = 1+2+3+4)<br />
*'''kBub''' - коэффициент за сматченные шарики.<br />
*'''kCmb''' - коэффициент за комбо.<br />
*'''kMov''' - коэффициент за оставшиеся ходы.<br />
*'''kTim''' - коэффициент за оставшиеся секунды.<br />
*'''kPst''' - коэффициент за удаленные с поля вредители.<br />
*'''kSnw''' - коэффициент за удаленные с поля снежинки.<br />
<br />
<br />
= Состояния =<br />
*'''pause''' - перевести объект в паузу; <br />
*'''resume''' - вытащить объект из паузы;<br />
*'''hint''' - выполнить хинт ( нужно в поле hntt указать номер хинта);<br />
*'''gover''' - <br />
*'''game_continue''' - продолжить игру (например, в случае, когда мы проиграли, но даем игроку шанс, убрав несколько нижних линий);<br />
*'''game_lose''' - задекларировать проигрыш (например, когда мы проиграли, и игрок отказался от шанса продолжить игру);<br />
*'''cur_on''' - отображать траекторию при прицеливании;<br />
*'''cur_off''' - убрать траекторию при прицеливании;<br />
*'''fbubswap''' - поменять местами шарики в пушке;<br />
*'''del_bottom''' - удалить несколько (задается параметром) нижних рядов;<br />
*'''effdigsc2''' - <br />
*'''update_params''' - обновить параметры объекта(пока только номер фрейма клипа шариков);<br />
*'''reset_game''' - сбросит игру , которая сохранена в опциях;<br />
*'''send_stat''' - отправить статистику.<br />
<br />
<br />
<br />
<br />
=Добавляемые параметры=<br />
<br />
===[[Файл:+.png]] Графический ресурс===<br />
*'''Клип''' - Графический ресурс, перетаскивается из редактора ресурсов.<br />
*'''Номер цвета''' - Номер цвета, который будет соответствовать значению цвета в файле-уровня.<br />
<br />
<br />
===[[Файл:+.png]] Ресурсы функциональных шариков===<br />
[[Файл:03-02-2014 10-35-45.png|200px|thumb|right]]<br />
*'''Функционал''' - Записываем значение чудо-шарика из файла-настроек.<br />
*'''Клип''' - Графический ресурс шариков, обладающих данным функционалом.<br />
*'''Звук''' - Звук шарика, обладающего данным функционалом.<br />
*'''Эффект''' - Машина/Патикл обладающие состоянием beg.<br />
<br />
<br />
===[[Файл:+.png]] Параметры анимации для шарика лунка===<br />
*'''Время перемещения''' - время движения шарика в центр лунки.<br />
*'''Время исчезновения''' - время исчезновения шарика в лунке (скейл).<br />
*'''Время жизни''' - время жизни эффекта.<br />
<br />
<br />
===[[Файл:+.png]] Параметры анимации для шарика колючка===<br />
*'''Время жизни''' - время жизни эффекта.<br />
<br />
<br />
===[[Файл:+.png]] Параметры анимации для шарика снежинка===<br />
*'''Время жизни''' - время жизни эффекта.<br />
<br />
<br />
===[[Файл:+.png]] Параметры анимации для шарика вредитель===<br />
*'''Время жизни''' - время жизни эффекта.<br />
*'''Время ожидания скина''' - время, пока поменяется скин шарика.<br />
*'''Эффект''' - эффект, возникающий в момент обрастания вредителя снежинками.<br />
<br />
<br />
===[[Файл:+.png]] Физика===<br />
[[Файл:02-01-2014 13-57-15.png|250px|thumb|right]]<br />
*'''Справа находится пример настроек физики для шариков радиусом 24.'''<br />
*'''Move''' - Коэффициент отталкивания летящего шарика.<br />
*'''MinDest2''' - Квадрат минимального расстояния, когда шарик считается в покое.<br />
*'''MinVel2''' - Квадрат минимальной скорости, когда шарик считается в покое.<br />
*'''Down''' - Трение.<br />
*'''MaxVel''' - Максимальная скорость колебаний.<br />
*'''Elast''' - Эластичность с-мы (коэффициент для сил действующих между соседними шариками).<br />
*'''Glue''' - Коэффициент притяжения шарика к центру ячейки.<br />
*'''MoveC''' - Радиус действия летящего шарика в ячейках.<br />
*'''BangVel''' - Приращение для скорости взрыва.<br />
<br />
<br />
===[[Файл:+.png]] Уровень сложности===<br />
''Название параметров говорит само за себя. Создавать их можно бесконечное множество, главное не забывать назначать им порядковые номера в поле "уровень" по мере добавления новых уровней. Количество уровней сложности внутри объекта должно соответствовать количеству уровней сложности у необходимого Вам монстра. Количество цветов заданное в файле-настройках .xml имеет приоритет над теми, что мы задаем в объекте.''<br />
*'''Уровень''' - номер уровня.<br />
*'''Кол-во цветов''' - число цветов на поле.<br />
*'''Шаги до наезда''' - число шагов до наезда.<br />
*'''Бомба мина: вероятность''' - вероятность появления мины в процентах.<br />
*'''Бомба мина: радиус''' - радиус мины в шариках.<br />
*'''Бомба ядро:вероятность''' - вероятность появления ядра в процентах.<br />
*'''Бомба ядро: число отскоков от стен''' - число отскоков ядра от стен поля.<br />
*'''Бомба цвет: количество''' - число бомб-цвет, которые появятся на уровне.<br />
*'''Бомба цвет: шаги''' - число шагов вначале уровня до появления бомбы-цвет.<br />
<br />
<br />
===[[Файл:+.png]] Визуализатор общих очков===<br />
*'''Объект''' - счетчик, прогресс, показывающий сумму очков за уровень.<br />
<br />
<br />
===[[Файл:+.png]] Игра выиграна: изменить состояние объекта===<br />
*'''Объект''' - объект, состояние которого меняем при выигрыше.<br />
*'''Состояние''' - новое состояние объекта.<br />
<br />
<br />
===[[Файл:+.png]] Игра выиграна: изменить параметр объекта===<br />
*'''Объект''' - объект, параметр которого меняем при выигрыше.<br />
*'''Параметр''' - параметр, который меняем.<br />
*'''Значение''' - новое значение параметра.<br />
<br />
<br />
===[[Файл:+.png]] Игра проиграна: изменить состояние объекта===<br />
*'''Объект''' - объект, состояние которого меняем при проигрыше.<br />
*'''Состояние''' - новое состояние объекта.<br />
<br />
===[[Файл:+.png]] Игра проиграна: изменить параметр объекта===<br />
*'''Объект''' - объект, параметр которого меняем при проигрыше.<br />
*'''Параметр''' - параметр, который меняем.<br />
*'''Значение''' - новое значение параметра.<br />
<br />
<br />
===[[Файл:+.png]] Выбили цвет: изменить состояние объекта===<br />
*'''Объект''' - объект, состояние которого меняем при удалении цвета с поля. При этом BSh передает указанному объекту параметр ''param_removed_colors'' со значением количества выбитых цветов за данный ход.<br />
*'''Состояние''' - новое состояние объекта.<br />
<br />
<br />
=Хинты=<br />
*'''Замена шарика''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=0, после чего передать состояние hint.<br />
*'''Удаление цвета''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=5, после чего передать состояние hint.<br />
*'''Ядро''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=3, после чего передать состояние hint.<br />
*'''Мина''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=1, после чего передать состояние hint.<br />
*'''Курсор''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=0, после чего передать состояние cur_on. После выстрела курсор исчезает.<br />
<br />
<br />
=Пример проекта=<br />
S:\!MOBILE\!!!EditorGames\Wiki_sample\bubble_snooker_graphprogress.zip<br />
<br />
<br />
=Пример реализации: задание уровня=<br />
<br />
::'''1)''' Если нам необходимо задать уровень шутеру прямиком из экрана где он находиться, и при этом он уже запустился (прорисовалась графика). То с начало мы должны передать ему состояние end, после чего задать необходимый уровень и переинитить сцену на которой он находиться (желательно чтобы на этой сцене был только шутер):<br />
<br />
[[Файл:Bubble change level.png|centre]]<br />
<br />
<br />
::'''2)''' Если же, мы задаем нужный уровень удалённо ( с другого экрана), то мы расшариваем экран с самим шутером на сцену где будем задавать ему новый уровень. И на том экране (удалённом) задаём шутеру нужный уровень (levelNum). <br />
<br />
[[Category:Game mechanic]]</div>Iskoroboghttps://wiki.appsalutecreator.com/index.php?title=Bubble_Shooter&diff=8609Bubble Shooter2017-03-15T07:59:36Z<p>Iskorobog: /* Настройки */</p>
<hr />
<div>{{TOC right}}<br />
Игровая механика BubbleShooter.<br />
<br />
=BubbleShooter Setup=<br />
'''Общие настройки'''<br />
*''' память''' - (memo) Если 1, то при повторном открытии экрана объект не обновляет свои параметры (помнит текущие параметры, оставшиеся от предыдущего посещения экрана)<br />
*'''res''' - графичесий ресурс поля для игры. Его размер является зоной для тапа.<br />
*'''Слушатель''' - объект типа Matchbattle.<br />
<br />
'''Группа - Сохранения'''<br />
*'''нужны''' - если '''да''', то сохраняет результаты игры в опции.<br />
*'''сохранять глобально''' - (prof) Если ==0, то значение будет сохранено в текущий профиль, если 1 - то глобально.<br />
*'''место''' - место в опциях, куда сохраняются данные игры.<br />
*'''флаг старых сейвов''' - (old_records) Место в опциях, куда пишем флаг 1 , когда считали и отправили сейвы со старого бабл шутера<br />
<br />
<br />
=Графика=<br />
*'''красные шарики''' - графический ресурс шарика данного цвета.<br />
*'''зеленые шарики''' - графический ресурс шарика данного цвета.<br />
*'''синие шарики''' - графический ресурс шарика данного цвета.<br />
*'''желтые шарики''' - графический ресурс шарика данного цвета.<br />
*'''голубые шарики''' - графический ресурс шарика данного цвета.<br />
*'''пурпурные шарики''' - графический ресурс шарика данного цвета.<br />
<br />
<br />
=Прицел=<br />
*'''res''' - Графический ресурс прицела, перетаскивается из редактора ресурсов.<br />
*'''Время''' - Время от нажатия до момента появления прицела.<br />
*'''Время перед мувом''' - Время от нажатия до момента появления прицела в движении.<br />
*'''Смещение''' - Расстояние между пальцем и центром прицела.<br />
<br />
<br />
=Курсор=<br />
*'''res''' - Графический ресурс курсора, перетаскивается из редактора ресурсов.<br />
*'''Кол-во шариков''' - количество шариков в курсоре.<br />
*'''Отражения''' - максимальное кол-во отражений от стенок.<br />
*'''минимальный скейл''' - (curminsc) минимальный скейл графики шариков<br />
*'''максимальный скейл''' - (curmaxsc) максимальный скейл графики шариков<br />
*'''время скалирования''' - (cursctm) время скалирования шариков<br />
<br />
<br />
=Эффекты=<br />
*'''Удар бомбы об гвоздь''' - объект, запускаемый на месте удара бомбы об гвоздь.<br />
*'''Удар шара об гвоздь''' - объект, запускаемый на месте удара шарика об гвоздь.<br />
*'''Очки в намберсах''' - объект, запускаемый в месте лопанья шариков.<br />
*'''Очки в намберсах 2''' - объект с финальными очками, летящими в цель.<br />
<br />
<br />
=Слушатели=<br />
*'''Выстрел''' - объект, которому передаются нижеследующие состояния при выстреле из пушки. Состояния: '''shot''' - выстрел обычным шариком, '''mine''' - выстрел миной, '''color''' - выстрел цветной бомбой, '''bullet''' - выстрел бомбой-ядром.<br />
<br />
<br />
=Настройки=<br />
[[Файл:02-01-2014 13-40-18.png|250px|thumb|right]]<br />
*'''Позиция стреляющего''' - Позиция стреляющего шарика (x;y)<br />
*'''Расстояние от следующего''' - Расстояние от стреляющего шарика до следующего за ним.<br />
*'''Высота физической сетки''' - Высота физической сетки поля.<br />
*'''Ширина физической сетки''' - Ширина физической сетки поля.<br />
*'''Смещение''' - Смешение поля относительно начала координат родителя.<br />
*'''Радиус шариков''' - Радиус шариков.<br />
*'''Мин.радиус шариков''' - Мин.размер шариков во время "взрыва".<br />
*'''Макс.радиус шариков''' - Макс.размер шариков во время "взрыва".<br />
*'''Ширина шариков''' - Ширина шариков на поле. Вычисляется по формуле (2R+2).<br />
*'''Высота шариков''' - Высота шариков на поле. Вычисляется по формуле (2R-2).<br />
*'''номер фрейма графики шариков''' - (clip_frame) Номер фрейма в клипе графики шариков.<br />
*'''Мин.энергия''' - Мин.энергия выстрела. (или что-то в этом духе, более точной информацией обладает только создатель оригинального кода баббла)<br />
*'''Макс.энергия''' - Макс.энергия выстрела.<br />
*'''убирать выбитый цвет из пушки''' - (fbub1) Убирать выбитый цвет из пушки (нет=0, да=1).<br />
*'''Уровень''' - Уровень игры: новичок, любитель, эксперт, мастер, кастомный (настройки уровня сложности зависят от параметров заданных в добавляемом поле "уровень сложности")<br />
*'''Вид игры''' - Режим игры: аркада, стратегия. Режим Аркада был создан для моды "битва", в котором предусматривалось добавление доп.рядов через определенное время бездействия игрока.<br />
[[Файл:02-01-2014 10-04-52.png|250px|thumb|right]]<br />
*'''Начальные шаги до наезда''' - Количество шагов через которое поле "накажет" игрока дополнительными рядами.<br />
*'''Промежутки добавления''' - Время через которое будут добавляться следующий ряд (в режиме Аркада).<br />
*'''Добавление рядов''' - Разрешить добавление рядов. Иначе только извне. Целесообразно использовать в снукере.<br />
*'''Тип досыпания''' - Тип досыпания шариков. Снукер или классический бабблшутер.<br />
*'''подтип классического досыпания''' - (addrowt) Вид классического досыпания шариков (нормальное=0,с заполнениями пустот=1).<br />
*'''Обваливать висячие''' - Обваливать висячие шарики (да/нет). Отключение этого параметра используется в игре снукер.<br />
*'''Отскок от потолка''' - Название говорит само за себя. Используется в снукере.<br />
*'''Файл-описание уровня''' - Файл формата .xml в котором будет построены уровни для игры. Пример приведен справа.<br />
*'''Номер уровня в файле''' - Стартовый уровень, с которого будет начинаться игра.<br />
*'''матч по цифрам''' - (nummatch) Матч по цифрам (нет=0, да=1).<br />
*'''multColor''' - (multColor) умножать число сматченых шариков на номер цвета при подсчете очков (нет=0, да=1).<br />
*'''removeDropWait''' - (removeDropWait) <br />
*'''объект подложки''' - (objback) Объект подлжоки, которой будет передана графика и состояни выстрела и его окончания.<br />
*'''включить анти-чит''' - (anti_cheat) Включить проверку на чит (нет=0, да=1).<br />
*'''собирать статистику''' - (collec_stat) Включить сбор статистики (нет=0, да=1).<br />
*'''складывать строки''' - (is_summing) Включить сбор статистики (нет=0, да=1).Складывать ли наезжающие строки при выбивании нескольких цветов.<br />
<br />
=настройки Lost Numbers=<br />
*'''время перекрашивания''' - (lnreptm)<br />
*'''макс скейл перекрашивания''' - (lnrepmaxsc)<br />
*'''перекрашивать сразу''' - (lnrepimm) нет=0, да=1<br />
<br />
<br />
=Параметры бомб=<br />
===Мина===<br />
[[Файл:02-01-2014 13-37-11.png|250px|thumb|right]]<br />
*'''res''' - Графический ресурс мины в пушке.<br />
*'''res1''' - Графический ресурс мины в полете.<br />
*'''Вероятность''' - Вероятность появления данной бомбы.<br />
*'''Скип''' - Количество пропущенных первых шагов для появления бомбы (не реализовано).<br />
*'''Количество''' - Количество появления бомбы за одну игровую сессию.<br />
*'''Шаги''' - Количество шагов до появления данной бомбы.<br />
*'''Шаги ok''' - Количество удачных шагов до появления бомбы.<br />
*'''Шаги miss''' - Количество неудачных шагов до появления бомбы.<br />
*'''n1''' - Минимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''n2''' - Максимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''Радиус''' - Радиус взрыва данной бомбы<br />
*'''Эффект''' - Эффект на месте взрыва бомбы. Объект должен иметь состояние beg.<br />
<br />
===Цвет===<br />
*'''res''' - Графический ресурс бомбы-цвет в пушке.<br />
*'''res1''' - Графический ресурс бомбы-цвет в полете.<br />
*'''Вероятность''' - Вероятность появления данной бомбы.<br />
*'''Скип''' - Количество пропущенных первых шагов для появления бомбы (не реализовано).<br />
*'''Количество''' - Количество появления бомбы за одну игровую сессию.<br />
*'''Шаги''' - Количество шагов до появления данной бомбы.<br />
*'''Шаги ok''' - Количество удачных шагов до появления бомбы.<br />
*'''Шаги miss''' - Количество неудачных шагов до появления бомбы.<br />
*'''n1''' - Минимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''n2''' - Максимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
<br />
===Ядро===<br />
*'''res''' - Графический ресурс ядра в пушке.<br />
*'''res1''' - Графический ресурс ядра в полете.<br />
*'''Вероятность''' - Вероятность появления данной бомбы.<br />
*'''Скип''' - Количество пропущенных первых шагов для появления бомбы (не реализовано).<br />
*'''Количество''' - Количество появления бомбы за одну игровую сессию.<br />
*'''Шаги''' - Количество шагов до появления данной бомбы.<br />
*'''Шаги ok''' - Количество удачных шагов до появления бомбы.<br />
*'''Шаги miss''' - Количество неудачных шагов до появления бомбы.<br />
*'''n1''' - Минимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''n2''' - Максимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''Флайер''' - Флайер летящий под бомбочкой.<br />
*'''Флайер 2''' - Флайер летящий под бомбочкой.<br />
*'''Скорость''' - Скорость перемещения бомбочки.<br />
*'''Число отскоков''' - Число отскоков от стен для бомбочки.<br />
<br />
<br />
=Звуки=<br />
*'''shot''' - Звук выстрела.<br />
*'''fail''' - Звук промаха.<br />
*'''explosion''' - Звук взрыва шариков.<br />
*'''intro''' - Звук в начале игры.<br />
*'''game over''' - Звук окончания игры.<br />
*'''bomb mine''' - Звук выстрела бомбы "мина".<br />
*'''bomb bullet''' - Звук выстрела бомбы "ядро".<br />
*'''bomb color''' - Звук выстрела бомбы "цвет".<br />
*'''Взрыв бомбы мина''' - Говорит само за себя.<br />
*'''Взрыв бомбы ядро''' - Говорит само за себя.<br />
*'''Взрыв бомбы цвет''' - Говорит само за себя.<br />
<br />
<br />
=Очковая система=<br />
*'''Тип''' - ''classic'', ''lostnumbers'', ''nightopera''<br />
*'''Визуализатор шагов''' - счетчик, прогресс, которые отображает оставшееся количество шагов до "наезда".<br />
*'''Визуализатор последних очков''' - счетчик, таймер, прогресс последних очков.<br />
*'''Аниматор последних очков''' - машина со счетчиком (подобъектом), которая запускается в месте попадания шарика. Должна иметь состояние ''show''.<br />
*'''Тип подсчета''' - очки могут считаться как: 1) количество сматченных шариков * на kBub; 2) сумма порядковых номеров (сматчили 4 шарика -> очки = 1+2+3+4)<br />
*'''kBub''' - коэффициент за сматченные шарики.<br />
*'''kCmb''' - коэффициент за комбо.<br />
*'''kMov''' - коэффициент за оставшиеся ходы.<br />
*'''kTim''' - коэффициент за оставшиеся секунды.<br />
*'''kPst''' - коэффициент за удаленные с поля вредители.<br />
*'''kSnw''' - коэффициент за удаленные с поля снежинки.<br />
<br />
<br />
= Состояния =<br />
*'''pause''' - перевести объект в паузу; <br />
*'''resume''' - вытащить объект из паузы;<br />
*'''hint''' - выполнить хинт ( нужно в поле hntt указать номер хинта);<br />
*'''gover''' - <br />
*'''game_continue''' - продолжить игру (например, в случае, когда мы проиграли, но даем игроку шанс, убрав несколько нижних линий);<br />
*'''game_lose''' - задекларировать проигрыш (например, когда мы проиграли, и игрок отказался от шанса продолжить игру);<br />
*'''cur_on''' - отображать траекторию при прицеливании;<br />
*'''cur_off''' - убрать траекторию при прицеливании;<br />
*'''fbubswap''' - поменять местами шарики в пушке;<br />
*'''del_bottom''' - удалить несколько (задается параметром) нижних рядов;<br />
*'''effdigsc2''' - <br />
*'''update_params''' - обновить параметры объекта(пока только номер фрейма клипа шариков);<br />
*'''reset_game''' - сбросит игру , которая сохранена в опциях;<br />
*'''send_stat''' - отправить статистику.<br />
<br />
<br />
<br />
<br />
=Добавляемые параметры=<br />
<br />
===[[Файл:+.png]] Графический ресурс===<br />
*'''Клип''' - Графический ресурс, перетаскивается из редактора ресурсов.<br />
*'''Номер цвета''' - Номер цвета, который будет соответствовать значению цвета в файле-уровня.<br />
<br />
<br />
===[[Файл:+.png]] Ресурсы функциональных шариков===<br />
[[Файл:03-02-2014 10-35-45.png|200px|thumb|right]]<br />
*'''Функционал''' - Записываем значение чудо-шарика из файла-настроек.<br />
*'''Клип''' - Графический ресурс шариков, обладающих данным функционалом.<br />
*'''Звук''' - Звук шарика, обладающего данным функционалом.<br />
*'''Эффект''' - Машина/Патикл обладающие состоянием beg.<br />
<br />
<br />
===[[Файл:+.png]] Параметры анимации для шарика лунка===<br />
*'''Время перемещения''' - время движения шарика в центр лунки.<br />
*'''Время исчезновения''' - время исчезновения шарика в лунке (скейл).<br />
*'''Время жизни''' - время жизни эффекта.<br />
<br />
<br />
===[[Файл:+.png]] Параметры анимации для шарика колючка===<br />
*'''Время жизни''' - время жизни эффекта.<br />
<br />
<br />
===[[Файл:+.png]] Параметры анимации для шарика снежинка===<br />
*'''Время жизни''' - время жизни эффекта.<br />
<br />
<br />
===[[Файл:+.png]] Параметры анимации для шарика вредитель===<br />
*'''Время жизни''' - время жизни эффекта.<br />
*'''Время ожидания скина''' - время, пока поменяется скин шарика.<br />
*'''Эффект''' - эффект, возникающий в момент обрастания вредителя снежинками.<br />
<br />
<br />
===[[Файл:+.png]] Физика===<br />
[[Файл:02-01-2014 13-57-15.png|250px|thumb|right]]<br />
*'''Справа находится пример настроек физики для шариков радиусом 24.'''<br />
*'''Move''' - Коэффициент отталкивания летящего шарика.<br />
*'''MinDest2''' - Квадрат минимального расстояния, когда шарик считается в покое.<br />
*'''MinVel2''' - Квадрат минимальной скорости, когда шарик считается в покое.<br />
*'''Down''' - Трение.<br />
*'''MaxVel''' - Максимальная скорость колебаний.<br />
*'''Elast''' - Эластичность с-мы (коэффициент для сил действующих между соседними шариками).<br />
*'''Glue''' - Коэффициент притяжения шарика к центру ячейки.<br />
*'''MoveC''' - Радиус действия летящего шарика в ячейках.<br />
*'''BangVel''' - Приращение для скорости взрыва.<br />
<br />
<br />
===[[Файл:+.png]] Уровень сложности===<br />
''Название параметров говорит само за себя. Создавать их можно бесконечное множество, главное не забывать назначать им порядковые номера в поле "уровень" по мере добавления новых уровней. Количество уровней сложности внутри объекта должно соответствовать количеству уровней сложности у необходимого Вам монстра. Количество цветов заданное в файле-настройках .xml имеет приоритет над теми, что мы задаем в объекте.''<br />
*'''Уровень''' - номер уровня.<br />
*'''Кол-во цветов''' - число цветов на поле.<br />
*'''Шаги до наезда''' - число шагов до наезда.<br />
*'''Бомба мина: вероятность''' - вероятность появления мины в процентах.<br />
*'''Бомба мина: радиус''' - радиус мины в шариках.<br />
*'''Бомба ядро:вероятность''' - вероятность появления ядра в процентах.<br />
*'''Бомба ядро: число отскоков от стен''' - число отскоков ядра от стен поля.<br />
*'''Бомба цвет: количество''' - число бомб-цвет, которые появятся на уровне.<br />
*'''Бомба цвет: шаги''' - число шагов вначале уровня до появления бомбы-цвет.<br />
<br />
<br />
===[[Файл:+.png]] Визуализатор общих очков===<br />
*'''Объект''' - счетчик, прогресс, показывающий сумму очков за уровень.<br />
<br />
<br />
===[[Файл:+.png]] Игра выиграна: изменить состояние объекта===<br />
*'''Объект''' - объект, состояние которого меняем при выигрыше.<br />
*'''Состояние''' - новое состояние объекта.<br />
<br />
<br />
===[[Файл:+.png]] Игра выиграна: изменить параметр объекта===<br />
*'''Объект''' - объект, параметр которого меняем при выигрыше.<br />
*'''Параметр''' - параметр, который меняем.<br />
*'''Значение''' - новое значение параметра.<br />
<br />
<br />
===[[Файл:+.png]] Игра проиграна: изменить состояние объекта===<br />
*'''Объект''' - объект, состояние которого меняем при проигрыше.<br />
*'''Состояние''' - новое состояние объекта.<br />
<br />
===[[Файл:+.png]] Игра проиграна: изменить параметр объекта===<br />
*'''Объект''' - объект, параметр которого меняем при проигрыше.<br />
*'''Параметр''' - параметр, который меняем.<br />
*'''Значение''' - новое значение параметра.<br />
<br />
<br />
===[[Файл:+.png]] Выбили цвет: изменить состояние объекта===<br />
*'''Объект''' - объект, состояние которого меняем при удалении цвета с поля. При этом BSh передает указанному объекту параметр ''param_removed_colors'' со значением количества выбитых цветов за данный ход.<br />
*'''Состояние''' - новое состояние объекта.<br />
<br />
<br />
=Хинты=<br />
*'''Замена шарика''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=0, после чего передать состояние hint.<br />
*'''Удаление цвета''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=5, после чего передать состояние hint.<br />
*'''Ядро''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=3, после чего передать состояние hint.<br />
*'''Мина''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=1, после чего передать состояние hint.<br />
*'''Курсор''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=0, после чего передать состояние cur_on. После выстрела курсор исчезает.<br />
<br />
<br />
=Пример проекта=<br />
S:\!MOBILE\!!!EditorGames\Wiki_sample\bubble_snooker_graphprogress.zip<br />
<br />
<br />
=Пример реализации: задание уровня=<br />
<br />
::'''1)''' Если нам необходимо задать уровень шутеру прямиком из экрана где он находиться, и при этом он уже запустился (прорисовалась графика). То с начало мы должны передать ему состояние end, после чего задать необходимый уровень и переинитить сцену на которой он находиться (желательно чтобы на этой сцене был только шутер):<br />
<br />
[[Файл:Bubble change level.png|centre]]<br />
<br />
<br />
::'''2)''' Если же, мы задаем нужный уровень удалённо ( с другого экрана), то мы расшариваем экран с самим шутером на сцену где будем задавать ему новый уровень. И на том экране (удалённом) задаём шутеру нужный уровень (levelNum). <br />
<br />
[[Category:Game mechanic]]</div>Iskoroboghttps://wiki.appsalutecreator.com/index.php?title=Bubble_Shooter&diff=8608Bubble Shooter2017-03-15T07:44:04Z<p>Iskorobog: </p>
<hr />
<div>{{TOC right}}<br />
Игровая механика BubbleShooter.<br />
<br />
=BubbleShooter Setup=<br />
'''Общие настройки'''<br />
*''' память''' - (memo) Если 1, то при повторном открытии экрана объект не обновляет свои параметры (помнит текущие параметры, оставшиеся от предыдущего посещения экрана)<br />
*'''res''' - графичесий ресурс поля для игры. Его размер является зоной для тапа.<br />
*'''Слушатель''' - объект типа Matchbattle.<br />
<br />
'''Группа - Сохранения'''<br />
*'''нужны''' - если '''да''', то сохраняет результаты игры в опции.<br />
*'''сохранять глобально''' - (prof) Если ==0, то значение будет сохранено в текущий профиль, если 1 - то глобально.<br />
*'''место''' - место в опциях, куда сохраняются данные игры.<br />
*'''флаг старых сейвов''' - (old_records) Место в опциях, куда пишем флаг 1 , когда считали и отправили сейвы со старого бабл шутера<br />
<br />
<br />
=Графика=<br />
*'''красные шарики''' - графический ресурс шарика данного цвета.<br />
*'''зеленые шарики''' - графический ресурс шарика данного цвета.<br />
*'''синие шарики''' - графический ресурс шарика данного цвета.<br />
*'''желтые шарики''' - графический ресурс шарика данного цвета.<br />
*'''голубые шарики''' - графический ресурс шарика данного цвета.<br />
*'''пурпурные шарики''' - графический ресурс шарика данного цвета.<br />
<br />
<br />
=Прицел=<br />
*'''res''' - Графический ресурс прицела, перетаскивается из редактора ресурсов.<br />
*'''Время''' - Время от нажатия до момента появления прицела.<br />
*'''Время перед мувом''' - Время от нажатия до момента появления прицела в движении.<br />
*'''Смещение''' - Расстояние между пальцем и центром прицела.<br />
<br />
<br />
=Курсор=<br />
*'''res''' - Графический ресурс курсора, перетаскивается из редактора ресурсов.<br />
*'''Кол-во шариков''' - количество шариков в курсоре.<br />
*'''Отражения''' - максимальное кол-во отражений от стенок.<br />
*'''минимальный скейл''' - (curminsc) минимальный скейл графики шариков<br />
*'''максимальный скейл''' - (curmaxsc) максимальный скейл графики шариков<br />
*'''время скалирования''' - (cursctm) время скалирования шариков<br />
<br />
<br />
=Эффекты=<br />
*'''Удар бомбы об гвоздь''' - объект, запускаемый на месте удара бомбы об гвоздь.<br />
*'''Удар шара об гвоздь''' - объект, запускаемый на месте удара шарика об гвоздь.<br />
*'''Очки в намберсах''' - объект, запускаемый в месте лопанья шариков.<br />
*'''Очки в намберсах 2''' - объект с финальными очками, летящими в цель.<br />
<br />
<br />
=Слушатели=<br />
*'''Выстрел''' - объект, которому передаются нижеследующие состояния при выстреле из пушки. Состояния: '''shot''' - выстрел обычным шариком, '''mine''' - выстрел миной, '''color''' - выстрел цветной бомбой, '''bullet''' - выстрел бомбой-ядром.<br />
<br />
<br />
=Настройки=<br />
[[Файл:02-01-2014 13-40-18.png|250px|thumb|right]]<br />
*'''Позиция стреляющего''' - Позиция стреляющего шарика (x;y)<br />
*'''Расстояние от следующего''' - Расстояние от стреляющего шарика до следующего за ним.<br />
*'''Высота физической сетки''' - Высота физической сетки поля.<br />
*'''Ширина физической сетки''' - Ширина физической сетки поля.<br />
*'''Смещение''' - Смешение поля относительно начала координат родителя.<br />
*'''Радиус шариков''' - Радиус шариков.<br />
*'''Мин.радиус шариков''' - Мин.размер шариков во время "взрыва".<br />
*'''Макс.радиус шариков''' - Макс.размер шариков во время "взрыва".<br />
*'''Ширина шариков''' - Ширина шариков на поле. Вычисляется по формуле (2R+2).<br />
*'''Высота шариков''' - Высота шариков на поле. Вычисляется по формуле (2R-2).<br />
*'''Мин.энергия''' - Мин.энергия выстрела. (или что-то в этом духе, более точной информацией обладает только создатель оригинального кода баббла)<br />
*'''Макс.энергия''' - Макс.энергия выстрела.<br />
*'''Уровень''' - Уровень игры: новичок, любитель, эксперт, мастер, кастомный (настройки уровня сложности зависят от параметров заданных в добавляемом поле "уровень сложности")<br />
*'''Вид игры''' - Режим игры: аркада, стратегия. Режим Аркада был создан для моды "битва", в котором предусматривалось добавление доп.рядов через определенное время бездействия игрока.<br />
[[Файл:02-01-2014 10-04-52.png|250px|thumb|right]]<br />
*'''Начальные шаги до наезда''' - Количество шагов через которое поле "накажет" игрока дополнительными рядами.<br />
*'''Промежутки добавления''' - Время через которое будут добавляться следующий ряд (в режиме Аркада).<br />
*'''Добавление рядов''' - Разрешить добавление рядов. Иначе только извне. Целесообразно использовать в снукере.<br />
*'''Тип досыпания''' - Тип досыпания шариков. Снукер или классический бабблшутер.<br />
*'''Обваливать висячие''' - Обваливать висячие шарики (да/нет). Отключение этого параметра используется в игре снукер.<br />
*'''Отскок от потолка''' - Название говорит само за себя. Используется в снукере.<br />
*'''Файл-описание уровня''' - Файл формата .xml в котором будет построены уровни для игры. Пример приведен справа.<br />
*'''Номер уровня в файле''' - Стартовый уровень, с которого будет начинаться игра.<br />
<br />
<br />
=настройки Lost Numbers=<br />
*'''время перекрашивания''' - (lnreptm)<br />
*'''макс скейл перекрашивания''' - (lnrepmaxsc)<br />
*'''перекрашивать сразу''' - (lnrepimm) нет=0, да=1<br />
<br />
<br />
=Параметры бомб=<br />
===Мина===<br />
[[Файл:02-01-2014 13-37-11.png|250px|thumb|right]]<br />
*'''res''' - Графический ресурс мины в пушке.<br />
*'''res1''' - Графический ресурс мины в полете.<br />
*'''Вероятность''' - Вероятность появления данной бомбы.<br />
*'''Скип''' - Количество пропущенных первых шагов для появления бомбы (не реализовано).<br />
*'''Количество''' - Количество появления бомбы за одну игровую сессию.<br />
*'''Шаги''' - Количество шагов до появления данной бомбы.<br />
*'''Шаги ok''' - Количество удачных шагов до появления бомбы.<br />
*'''Шаги miss''' - Количество неудачных шагов до появления бомбы.<br />
*'''n1''' - Минимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''n2''' - Максимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''Радиус''' - Радиус взрыва данной бомбы<br />
*'''Эффект''' - Эффект на месте взрыва бомбы. Объект должен иметь состояние beg.<br />
<br />
===Цвет===<br />
*'''res''' - Графический ресурс бомбы-цвет в пушке.<br />
*'''res1''' - Графический ресурс бомбы-цвет в полете.<br />
*'''Вероятность''' - Вероятность появления данной бомбы.<br />
*'''Скип''' - Количество пропущенных первых шагов для появления бомбы (не реализовано).<br />
*'''Количество''' - Количество появления бомбы за одну игровую сессию.<br />
*'''Шаги''' - Количество шагов до появления данной бомбы.<br />
*'''Шаги ok''' - Количество удачных шагов до появления бомбы.<br />
*'''Шаги miss''' - Количество неудачных шагов до появления бомбы.<br />
*'''n1''' - Минимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''n2''' - Максимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
<br />
===Ядро===<br />
*'''res''' - Графический ресурс ядра в пушке.<br />
*'''res1''' - Графический ресурс ядра в полете.<br />
*'''Вероятность''' - Вероятность появления данной бомбы.<br />
*'''Скип''' - Количество пропущенных первых шагов для появления бомбы (не реализовано).<br />
*'''Количество''' - Количество появления бомбы за одну игровую сессию.<br />
*'''Шаги''' - Количество шагов до появления данной бомбы.<br />
*'''Шаги ok''' - Количество удачных шагов до появления бомбы.<br />
*'''Шаги miss''' - Количество неудачных шагов до появления бомбы.<br />
*'''n1''' - Минимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''n2''' - Максимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''Флайер''' - Флайер летящий под бомбочкой.<br />
*'''Флайер 2''' - Флайер летящий под бомбочкой.<br />
*'''Скорость''' - Скорость перемещения бомбочки.<br />
*'''Число отскоков''' - Число отскоков от стен для бомбочки.<br />
<br />
<br />
=Звуки=<br />
*'''shot''' - Звук выстрела.<br />
*'''fail''' - Звук промаха.<br />
*'''explosion''' - Звук взрыва шариков.<br />
*'''intro''' - Звук в начале игры.<br />
*'''game over''' - Звук окончания игры.<br />
*'''bomb mine''' - Звук выстрела бомбы "мина".<br />
*'''bomb bullet''' - Звук выстрела бомбы "ядро".<br />
*'''bomb color''' - Звук выстрела бомбы "цвет".<br />
*'''Взрыв бомбы мина''' - Говорит само за себя.<br />
*'''Взрыв бомбы ядро''' - Говорит само за себя.<br />
*'''Взрыв бомбы цвет''' - Говорит само за себя.<br />
<br />
<br />
=Очковая система=<br />
*'''Тип''' - ''classic'', ''lostnumbers'', ''nightopera''<br />
*'''Визуализатор шагов''' - счетчик, прогресс, которые отображает оставшееся количество шагов до "наезда".<br />
*'''Визуализатор последних очков''' - счетчик, таймер, прогресс последних очков.<br />
*'''Аниматор последних очков''' - машина со счетчиком (подобъектом), которая запускается в месте попадания шарика. Должна иметь состояние ''show''.<br />
*'''Тип подсчета''' - очки могут считаться как: 1) количество сматченных шариков * на kBub; 2) сумма порядковых номеров (сматчили 4 шарика -> очки = 1+2+3+4)<br />
*'''kBub''' - коэффициент за сматченные шарики.<br />
*'''kCmb''' - коэффициент за комбо.<br />
*'''kMov''' - коэффициент за оставшиеся ходы.<br />
*'''kTim''' - коэффициент за оставшиеся секунды.<br />
*'''kPst''' - коэффициент за удаленные с поля вредители.<br />
*'''kSnw''' - коэффициент за удаленные с поля снежинки.<br />
<br />
<br />
= Состояния =<br />
*'''pause''' - перевести объект в паузу; <br />
*'''resume''' - вытащить объект из паузы;<br />
*'''hint''' - выполнить хинт ( нужно в поле hntt указать номер хинта);<br />
*'''gover''' - <br />
*'''game_continue''' - продолжить игру (например, в случае, когда мы проиграли, но даем игроку шанс, убрав несколько нижних линий);<br />
*'''game_lose''' - задекларировать проигрыш (например, когда мы проиграли, и игрок отказался от шанса продолжить игру);<br />
*'''cur_on''' - отображать траекторию при прицеливании;<br />
*'''cur_off''' - убрать траекторию при прицеливании;<br />
*'''fbubswap''' - поменять местами шарики в пушке;<br />
*'''del_bottom''' - удалить несколько (задается параметром) нижних рядов;<br />
*'''effdigsc2''' - <br />
*'''update_params''' - обновить параметры объекта(пока только номер фрейма клипа шариков);<br />
*'''reset_game''' - сбросит игру , которая сохранена в опциях;<br />
*'''send_stat''' - отправить статистику.<br />
<br />
<br />
<br />
<br />
=Добавляемые параметры=<br />
<br />
===[[Файл:+.png]] Графический ресурс===<br />
*'''Клип''' - Графический ресурс, перетаскивается из редактора ресурсов.<br />
*'''Номер цвета''' - Номер цвета, который будет соответствовать значению цвета в файле-уровня.<br />
<br />
<br />
===[[Файл:+.png]] Ресурсы функциональных шариков===<br />
[[Файл:03-02-2014 10-35-45.png|200px|thumb|right]]<br />
*'''Функционал''' - Записываем значение чудо-шарика из файла-настроек.<br />
*'''Клип''' - Графический ресурс шариков, обладающих данным функционалом.<br />
*'''Звук''' - Звук шарика, обладающего данным функционалом.<br />
*'''Эффект''' - Машина/Патикл обладающие состоянием beg.<br />
<br />
<br />
===[[Файл:+.png]] Параметры анимации для шарика лунка===<br />
*'''Время перемещения''' - время движения шарика в центр лунки.<br />
*'''Время исчезновения''' - время исчезновения шарика в лунке (скейл).<br />
*'''Время жизни''' - время жизни эффекта.<br />
<br />
<br />
===[[Файл:+.png]] Параметры анимации для шарика колючка===<br />
*'''Время жизни''' - время жизни эффекта.<br />
<br />
<br />
===[[Файл:+.png]] Параметры анимации для шарика снежинка===<br />
*'''Время жизни''' - время жизни эффекта.<br />
<br />
<br />
===[[Файл:+.png]] Параметры анимации для шарика вредитель===<br />
*'''Время жизни''' - время жизни эффекта.<br />
*'''Время ожидания скина''' - время, пока поменяется скин шарика.<br />
*'''Эффект''' - эффект, возникающий в момент обрастания вредителя снежинками.<br />
<br />
<br />
===[[Файл:+.png]] Физика===<br />
[[Файл:02-01-2014 13-57-15.png|250px|thumb|right]]<br />
*'''Справа находится пример настроек физики для шариков радиусом 24.'''<br />
*'''Move''' - Коэффициент отталкивания летящего шарика.<br />
*'''MinDest2''' - Квадрат минимального расстояния, когда шарик считается в покое.<br />
*'''MinVel2''' - Квадрат минимальной скорости, когда шарик считается в покое.<br />
*'''Down''' - Трение.<br />
*'''MaxVel''' - Максимальная скорость колебаний.<br />
*'''Elast''' - Эластичность с-мы (коэффициент для сил действующих между соседними шариками).<br />
*'''Glue''' - Коэффициент притяжения шарика к центру ячейки.<br />
*'''MoveC''' - Радиус действия летящего шарика в ячейках.<br />
*'''BangVel''' - Приращение для скорости взрыва.<br />
<br />
<br />
===[[Файл:+.png]] Уровень сложности===<br />
''Название параметров говорит само за себя. Создавать их можно бесконечное множество, главное не забывать назначать им порядковые номера в поле "уровень" по мере добавления новых уровней. Количество уровней сложности внутри объекта должно соответствовать количеству уровней сложности у необходимого Вам монстра. Количество цветов заданное в файле-настройках .xml имеет приоритет над теми, что мы задаем в объекте.''<br />
*'''Уровень''' - номер уровня.<br />
*'''Кол-во цветов''' - число цветов на поле.<br />
*'''Шаги до наезда''' - число шагов до наезда.<br />
*'''Бомба мина: вероятность''' - вероятность появления мины в процентах.<br />
*'''Бомба мина: радиус''' - радиус мины в шариках.<br />
*'''Бомба ядро:вероятность''' - вероятность появления ядра в процентах.<br />
*'''Бомба ядро: число отскоков от стен''' - число отскоков ядра от стен поля.<br />
*'''Бомба цвет: количество''' - число бомб-цвет, которые появятся на уровне.<br />
*'''Бомба цвет: шаги''' - число шагов вначале уровня до появления бомбы-цвет.<br />
<br />
<br />
===[[Файл:+.png]] Визуализатор общих очков===<br />
*'''Объект''' - счетчик, прогресс, показывающий сумму очков за уровень.<br />
<br />
<br />
===[[Файл:+.png]] Игра выиграна: изменить состояние объекта===<br />
*'''Объект''' - объект, состояние которого меняем при выигрыше.<br />
*'''Состояние''' - новое состояние объекта.<br />
<br />
<br />
===[[Файл:+.png]] Игра выиграна: изменить параметр объекта===<br />
*'''Объект''' - объект, параметр которого меняем при выигрыше.<br />
*'''Параметр''' - параметр, который меняем.<br />
*'''Значение''' - новое значение параметра.<br />
<br />
<br />
===[[Файл:+.png]] Игра проиграна: изменить состояние объекта===<br />
*'''Объект''' - объект, состояние которого меняем при проигрыше.<br />
*'''Состояние''' - новое состояние объекта.<br />
<br />
===[[Файл:+.png]] Игра проиграна: изменить параметр объекта===<br />
*'''Объект''' - объект, параметр которого меняем при проигрыше.<br />
*'''Параметр''' - параметр, который меняем.<br />
*'''Значение''' - новое значение параметра.<br />
<br />
<br />
===[[Файл:+.png]] Выбили цвет: изменить состояние объекта===<br />
*'''Объект''' - объект, состояние которого меняем при удалении цвета с поля. При этом BSh передает указанному объекту параметр ''param_removed_colors'' со значением количества выбитых цветов за данный ход.<br />
*'''Состояние''' - новое состояние объекта.<br />
<br />
<br />
=Хинты=<br />
*'''Замена шарика''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=0, после чего передать состояние hint.<br />
*'''Удаление цвета''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=5, после чего передать состояние hint.<br />
*'''Ядро''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=3, после чего передать состояние hint.<br />
*'''Мина''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=1, после чего передать состояние hint.<br />
*'''Курсор''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=0, после чего передать состояние cur_on. После выстрела курсор исчезает.<br />
<br />
<br />
=Пример проекта=<br />
S:\!MOBILE\!!!EditorGames\Wiki_sample\bubble_snooker_graphprogress.zip<br />
<br />
<br />
=Пример реализации: задание уровня=<br />
<br />
::'''1)''' Если нам необходимо задать уровень шутеру прямиком из экрана где он находиться, и при этом он уже запустился (прорисовалась графика). То с начало мы должны передать ему состояние end, после чего задать необходимый уровень и переинитить сцену на которой он находиться (желательно чтобы на этой сцене был только шутер):<br />
<br />
[[Файл:Bubble change level.png|centre]]<br />
<br />
<br />
::'''2)''' Если же, мы задаем нужный уровень удалённо ( с другого экрана), то мы расшариваем экран с самим шутером на сцену где будем задавать ему новый уровень. И на том экране (удалённом) задаём шутеру нужный уровень (levelNum). <br />
<br />
[[Category:Game mechanic]]</div>Iskoroboghttps://wiki.appsalutecreator.com/index.php?title=Bubble_Shooter&diff=8607Bubble Shooter2017-03-15T07:41:52Z<p>Iskorobog: </p>
<hr />
<div>{{TOC right}}<br />
Игровая механика BubbleShooter.<br />
<br />
=BubbleShooter Setup=<br />
'''Общие настройки'''<br />
*''' память''' - (memo) Если 1, то при повторном открытии экрана объект не обновляет свои параметры (помнит текущие параметры, оставшиеся от предыдущего посещения экрана)<br />
*'''res''' - графичесий ресурс поля для игры. Его размер является зоной для тапа.<br />
*'''Слушатель''' - объект типа Matchbattle.<br />
<br />
'''Группа - Сохранения'''<br />
*'''нужны''' - если '''да''', то сохраняет результаты игры в опции.<br />
*'''сохранять глобально''' - (prof) Если ==0, то значение будет сохранено в текущий профиль, если 1 - то глобально.<br />
*'''место''' - место в опциях, куда сохраняются данные игры.<br />
*'''флаг старых сейвов''' - (old_records) Место в опциях, куда пишем флаг 1 , когда считали и отправили сейвы со старого бабл шутера<br />
<br />
<br />
=Графика=<br />
*'''красные шарики''' - графический ресурс шарика данного цвета.<br />
*'''зеленые шарики''' - графический ресурс шарика данного цвета.<br />
*'''синие шарики''' - графический ресурс шарика данного цвета.<br />
*'''желтые шарики''' - графический ресурс шарика данного цвета.<br />
*'''голубые шарики''' - графический ресурс шарика данного цвета.<br />
*'''пурпурные шарики''' - графический ресурс шарика данного цвета.<br />
<br />
<br />
=Прицел=<br />
*'''res''' - Графический ресурс прицела, перетаскивается из редактора ресурсов.<br />
*'''Время''' - Время от нажатия до момента появления прицела.<br />
*'''Время перед мувом''' - Время от нажатия до момента появления прицела в движении.<br />
*'''Смещение''' - Расстояние между пальцем и центром прицела.<br />
<br />
<br />
=Курсор=<br />
*'''res''' - Графический ресурс курсора, перетаскивается из редактора ресурсов.<br />
*'''Кол-во шариков''' - количество шариков в курсоре.<br />
*'''Отражения''' - максимальное кол-во отражений от стенок.<br />
*'''минимальный скейл''' - (curminsc) минимальный скейл графики шариков<br />
*'''максимальный скейл''' - (curmaxsc) максимальный скейл графики шариков<br />
*'''время скалирования''' - (cursctm) время скалирования шариков<br />
<br />
<br />
=Эффекты=<br />
*'''Удар бомбы об гвоздь''' - объект, запускаемый на месте удара бомбы об гвоздь.<br />
*'''Удар шара об гвоздь''' - объект, запускаемый на месте удара шарика об гвоздь.<br />
*'''Очки в намберсах''' - объект, запускаемый в месте лопанья шариков.<br />
*'''Очки в намберсах 2''' - объект с финальными очками, летящими в цель.<br />
<br />
<br />
=Слушатели=<br />
*'''Выстрел''' - объект, которому передаются нижеследующие состояния при выстреле из пушки. Состояния: '''shot''' - выстрел обычным шариком, '''mine''' - выстрел миной, '''color''' - выстрел цветной бомбой, '''bullet''' - выстрел бомбой-ядром.<br />
<br />
<br />
=настройки Lost Numbers=<br />
*'''время перекрашивания''' - (lnreptm)<br />
*'''макс скейл перекрашивания''' - (lnrepmaxsc)<br />
*'''перекрашивать сразу''' - (lnrepimm) нет=0, да=1<br />
<br />
<br />
=Настройки=<br />
[[Файл:02-01-2014 13-40-18.png|250px|thumb|right]]<br />
*'''Позиция стреляющего''' - Позиция стреляющего шарика (x;y)<br />
*'''Расстояние от следующего''' - Расстояние от стреляющего шарика до следующего за ним.<br />
*'''Высота физической сетки''' - Высота физической сетки поля.<br />
*'''Ширина физической сетки''' - Ширина физической сетки поля.<br />
*'''Смещение''' - Смешение поля относительно начала координат родителя.<br />
*'''Радиус шариков''' - Радиус шариков.<br />
*'''Мин.радиус шариков''' - Мин.размер шариков во время "взрыва".<br />
*'''Макс.радиус шариков''' - Макс.размер шариков во время "взрыва".<br />
*'''Ширина шариков''' - Ширина шариков на поле. Вычисляется по формуле (2R+2).<br />
*'''Высота шариков''' - Высота шариков на поле. Вычисляется по формуле (2R-2).<br />
*'''Мин.энергия''' - Мин.энергия выстрела. (или что-то в этом духе, более точной информацией обладает только создатель оригинального кода баббла)<br />
*'''Макс.энергия''' - Макс.энергия выстрела.<br />
*'''Уровень''' - Уровень игры: новичок, любитель, эксперт, мастер, кастомный (настройки уровня сложности зависят от параметров заданных в добавляемом поле "уровень сложности")<br />
*'''Вид игры''' - Режим игры: аркада, стратегия. Режим Аркада был создан для моды "битва", в котором предусматривалось добавление доп.рядов через определенное время бездействия игрока.<br />
[[Файл:02-01-2014 10-04-52.png|250px|thumb|right]]<br />
*'''Начальные шаги до наезда''' - Количество шагов через которое поле "накажет" игрока дополнительными рядами.<br />
*'''Промежутки добавления''' - Время через которое будут добавляться следующий ряд (в режиме Аркада).<br />
*'''Добавление рядов''' - Разрешить добавление рядов. Иначе только извне. Целесообразно использовать в снукере.<br />
*'''Тип досыпания''' - Тип досыпания шариков. Снукер или классический бабблшутер.<br />
*'''Обваливать висячие''' - Обваливать висячие шарики (да/нет). Отключение этого параметра используется в игре снукер.<br />
*'''Отскок от потолка''' - Название говорит само за себя. Используется в снукере.<br />
*'''Файл-описание уровня''' - Файл формата .xml в котором будет построены уровни для игры. Пример приведен справа.<br />
*'''Номер уровня в файле''' - Стартовый уровень, с которого будет начинаться игра.<br />
<br />
<br />
=Параметры бомб=<br />
===Мина===<br />
[[Файл:02-01-2014 13-37-11.png|250px|thumb|right]]<br />
*'''res''' - Графический ресурс мины в пушке.<br />
*'''res1''' - Графический ресурс мины в полете.<br />
*'''Вероятность''' - Вероятность появления данной бомбы.<br />
*'''Скип''' - Количество пропущенных первых шагов для появления бомбы (не реализовано).<br />
*'''Количество''' - Количество появления бомбы за одну игровую сессию.<br />
*'''Шаги''' - Количество шагов до появления данной бомбы.<br />
*'''Шаги ok''' - Количество удачных шагов до появления бомбы.<br />
*'''Шаги miss''' - Количество неудачных шагов до появления бомбы.<br />
*'''n1''' - Минимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''n2''' - Максимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''Радиус''' - Радиус взрыва данной бомбы<br />
*'''Эффект''' - Эффект на месте взрыва бомбы. Объект должен иметь состояние beg.<br />
<br />
===Цвет===<br />
*'''res''' - Графический ресурс бомбы-цвет в пушке.<br />
*'''res1''' - Графический ресурс бомбы-цвет в полете.<br />
*'''Вероятность''' - Вероятность появления данной бомбы.<br />
*'''Скип''' - Количество пропущенных первых шагов для появления бомбы (не реализовано).<br />
*'''Количество''' - Количество появления бомбы за одну игровую сессию.<br />
*'''Шаги''' - Количество шагов до появления данной бомбы.<br />
*'''Шаги ok''' - Количество удачных шагов до появления бомбы.<br />
*'''Шаги miss''' - Количество неудачных шагов до появления бомбы.<br />
*'''n1''' - Минимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''n2''' - Максимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
<br />
===Ядро===<br />
*'''res''' - Графический ресурс ядра в пушке.<br />
*'''res1''' - Графический ресурс ядра в полете.<br />
*'''Вероятность''' - Вероятность появления данной бомбы.<br />
*'''Скип''' - Количество пропущенных первых шагов для появления бомбы (не реализовано).<br />
*'''Количество''' - Количество появления бомбы за одну игровую сессию.<br />
*'''Шаги''' - Количество шагов до появления данной бомбы.<br />
*'''Шаги ok''' - Количество удачных шагов до появления бомбы.<br />
*'''Шаги miss''' - Количество неудачных шагов до появления бомбы.<br />
*'''n1''' - Минимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''n2''' - Максимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''Флайер''' - Флайер летящий под бомбочкой.<br />
*'''Флайер 2''' - Флайер летящий под бомбочкой.<br />
*'''Скорость''' - Скорость перемещения бомбочки.<br />
*'''Число отскоков''' - Число отскоков от стен для бомбочки.<br />
<br />
<br />
=Звуки=<br />
*'''shot''' - Звук выстрела.<br />
*'''fail''' - Звук промаха.<br />
*'''explosion''' - Звук взрыва шариков.<br />
*'''intro''' - Звук в начале игры.<br />
*'''game over''' - Звук окончания игры.<br />
*'''bomb mine''' - Звук выстрела бомбы "мина".<br />
*'''bomb bullet''' - Звук выстрела бомбы "ядро".<br />
*'''bomb color''' - Звук выстрела бомбы "цвет".<br />
*'''Взрыв бомбы мина''' - Говорит само за себя.<br />
*'''Взрыв бомбы ядро''' - Говорит само за себя.<br />
*'''Взрыв бомбы цвет''' - Говорит само за себя.<br />
<br />
<br />
=Очковая система=<br />
*'''Тип''' - ''classic'', ''lostnumbers'', ''nightopera''<br />
*'''Визуализатор шагов''' - счетчик, прогресс, которые отображает оставшееся количество шагов до "наезда".<br />
*'''Визуализатор последних очков''' - счетчик, таймер, прогресс последних очков.<br />
*'''Аниматор последних очков''' - машина со счетчиком (подобъектом), которая запускается в месте попадания шарика. Должна иметь состояние ''show''.<br />
*'''Тип подсчета''' - очки могут считаться как: 1) количество сматченных шариков * на kBub; 2) сумма порядковых номеров (сматчили 4 шарика -> очки = 1+2+3+4)<br />
*'''kBub''' - коэффициент за сматченные шарики.<br />
*'''kCmb''' - коэффициент за комбо.<br />
*'''kMov''' - коэффициент за оставшиеся ходы.<br />
*'''kTim''' - коэффициент за оставшиеся секунды.<br />
*'''kPst''' - коэффициент за удаленные с поля вредители.<br />
*'''kSnw''' - коэффициент за удаленные с поля снежинки.<br />
<br />
<br />
= Состояния =<br />
*'''pause''' - перевести объект в паузу; <br />
*'''resume''' - вытащить объект из паузы;<br />
*'''hint''' - выполнить хинт ( нужно в поле hntt указать номер хинта);<br />
*'''gover''' - <br />
*'''game_continue''' - продолжить игру (например, в случае, когда мы проиграли, но даем игроку шанс, убрав несколько нижних линий);<br />
*'''game_lose''' - задекларировать проигрыш (например, когда мы проиграли, и игрок отказался от шанса продолжить игру);<br />
*'''cur_on''' - отображать траекторию при прицеливании;<br />
*'''cur_off''' - убрать траекторию при прицеливании;<br />
*'''fbubswap''' - поменять местами шарики в пушке;<br />
*'''del_bottom''' - удалить несколько (задается параметром) нижних рядов;<br />
*'''effdigsc2''' - <br />
*'''update_params''' - обновить параметры объекта(пока только номер фрейма клипа шариков);<br />
*'''reset_game''' - сбросит игру , которая сохранена в опциях;<br />
*'''send_stat''' - отправить статистику.<br />
<br />
<br />
<br />
<br />
=Добавляемые параметры=<br />
<br />
===[[Файл:+.png]] Графический ресурс===<br />
*'''Клип''' - Графический ресурс, перетаскивается из редактора ресурсов.<br />
*'''Номер цвета''' - Номер цвета, который будет соответствовать значению цвета в файле-уровня.<br />
<br />
<br />
===[[Файл:+.png]] Ресурсы функциональных шариков===<br />
[[Файл:03-02-2014 10-35-45.png|200px|thumb|right]]<br />
*'''Функционал''' - Записываем значение чудо-шарика из файла-настроек.<br />
*'''Клип''' - Графический ресурс шариков, обладающих данным функционалом.<br />
*'''Звук''' - Звук шарика, обладающего данным функционалом.<br />
*'''Эффект''' - Машина/Патикл обладающие состоянием beg.<br />
<br />
<br />
===[[Файл:+.png]] Параметры анимации для шарика лунка===<br />
*'''Время перемещения''' - время движения шарика в центр лунки.<br />
*'''Время исчезновения''' - время исчезновения шарика в лунке (скейл).<br />
*'''Время жизни''' - время жизни эффекта.<br />
<br />
<br />
===[[Файл:+.png]] Параметры анимации для шарика колючка===<br />
*'''Время жизни''' - время жизни эффекта.<br />
<br />
<br />
===[[Файл:+.png]] Параметры анимации для шарика снежинка===<br />
*'''Время жизни''' - время жизни эффекта.<br />
<br />
<br />
===[[Файл:+.png]] Параметры анимации для шарика вредитель===<br />
*'''Время жизни''' - время жизни эффекта.<br />
*'''Время ожидания скина''' - время, пока поменяется скин шарика.<br />
*'''Эффект''' - эффект, возникающий в момент обрастания вредителя снежинками.<br />
<br />
<br />
===[[Файл:+.png]] Физика===<br />
[[Файл:02-01-2014 13-57-15.png|250px|thumb|right]]<br />
*'''Справа находится пример настроек физики для шариков радиусом 24.'''<br />
*'''Move''' - Коэффициент отталкивания летящего шарика.<br />
*'''MinDest2''' - Квадрат минимального расстояния, когда шарик считается в покое.<br />
*'''MinVel2''' - Квадрат минимальной скорости, когда шарик считается в покое.<br />
*'''Down''' - Трение.<br />
*'''MaxVel''' - Максимальная скорость колебаний.<br />
*'''Elast''' - Эластичность с-мы (коэффициент для сил действующих между соседними шариками).<br />
*'''Glue''' - Коэффициент притяжения шарика к центру ячейки.<br />
*'''MoveC''' - Радиус действия летящего шарика в ячейках.<br />
*'''BangVel''' - Приращение для скорости взрыва.<br />
<br />
<br />
===[[Файл:+.png]] Уровень сложности===<br />
''Название параметров говорит само за себя. Создавать их можно бесконечное множество, главное не забывать назначать им порядковые номера в поле "уровень" по мере добавления новых уровней. Количество уровней сложности внутри объекта должно соответствовать количеству уровней сложности у необходимого Вам монстра. Количество цветов заданное в файле-настройках .xml имеет приоритет над теми, что мы задаем в объекте.''<br />
*'''Уровень''' - номер уровня.<br />
*'''Кол-во цветов''' - число цветов на поле.<br />
*'''Шаги до наезда''' - число шагов до наезда.<br />
*'''Бомба мина: вероятность''' - вероятность появления мины в процентах.<br />
*'''Бомба мина: радиус''' - радиус мины в шариках.<br />
*'''Бомба ядро:вероятность''' - вероятность появления ядра в процентах.<br />
*'''Бомба ядро: число отскоков от стен''' - число отскоков ядра от стен поля.<br />
*'''Бомба цвет: количество''' - число бомб-цвет, которые появятся на уровне.<br />
*'''Бомба цвет: шаги''' - число шагов вначале уровня до появления бомбы-цвет.<br />
<br />
<br />
===[[Файл:+.png]] Визуализатор общих очков===<br />
*'''Объект''' - счетчик, прогресс, показывающий сумму очков за уровень.<br />
<br />
<br />
===[[Файл:+.png]] Игра выиграна: изменить состояние объекта===<br />
*'''Объект''' - объект, состояние которого меняем при выигрыше.<br />
*'''Состояние''' - новое состояние объекта.<br />
<br />
<br />
===[[Файл:+.png]] Игра выиграна: изменить параметр объекта===<br />
*'''Объект''' - объект, параметр которого меняем при выигрыше.<br />
*'''Параметр''' - параметр, который меняем.<br />
*'''Значение''' - новое значение параметра.<br />
<br />
<br />
===[[Файл:+.png]] Игра проиграна: изменить состояние объекта===<br />
*'''Объект''' - объект, состояние которого меняем при проигрыше.<br />
*'''Состояние''' - новое состояние объекта.<br />
<br />
===[[Файл:+.png]] Игра проиграна: изменить параметр объекта===<br />
*'''Объект''' - объект, параметр которого меняем при проигрыше.<br />
*'''Параметр''' - параметр, который меняем.<br />
*'''Значение''' - новое значение параметра.<br />
<br />
<br />
===[[Файл:+.png]] Выбили цвет: изменить состояние объекта===<br />
*'''Объект''' - объект, состояние которого меняем при удалении цвета с поля. При этом BSh передает указанному объекту параметр ''param_removed_colors'' со значением количества выбитых цветов за данный ход.<br />
*'''Состояние''' - новое состояние объекта.<br />
<br />
<br />
=Хинты=<br />
*'''Замена шарика''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=0, после чего передать состояние hint.<br />
*'''Удаление цвета''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=5, после чего передать состояние hint.<br />
*'''Ядро''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=3, после чего передать состояние hint.<br />
*'''Мина''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=1, после чего передать состояние hint.<br />
*'''Курсор''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=0, после чего передать состояние cur_on. После выстрела курсор исчезает.<br />
<br />
<br />
=Пример проекта=<br />
S:\!MOBILE\!!!EditorGames\Wiki_sample\bubble_snooker_graphprogress.zip<br />
<br />
<br />
=Пример реализации: задание уровня=<br />
<br />
::'''1)''' Если нам необходимо задать уровень шутеру прямиком из экрана где он находиться, и при этом он уже запустился (прорисовалась графика). То с начало мы должны передать ему состояние end, после чего задать необходимый уровень и переинитить сцену на которой он находиться (желательно чтобы на этой сцене был только шутер):<br />
<br />
[[Файл:Bubble change level.png|centre]]<br />
<br />
<br />
::'''2)''' Если же, мы задаем нужный уровень удалённо ( с другого экрана), то мы расшариваем экран с самим шутером на сцену где будем задавать ему новый уровень. И на том экране (удалённом) задаём шутеру нужный уровень (levelNum). <br />
<br />
[[Category:Game mechanic]]</div>Iskoroboghttps://wiki.appsalutecreator.com/index.php?title=Bubble_Shooter&diff=8606Bubble Shooter2017-03-15T07:40:50Z<p>Iskorobog: </p>
<hr />
<div>{{TOC right}}<br />
Игровая механика BubbleShooter.<br />
<br />
=BubbleShooter Setup=<br />
'''Общие настройки'''<br />
*''' память''' - (memo) Если 1, то при повторном открытии экрана объект не обновляет свои параметры (помнит текущие параметры, оставшиеся от предыдущего посещения экрана)<br />
*'''res''' - графичесий ресурс поля для игры. Его размер является зоной для тапа.<br />
*'''Слушатель''' - объект типа Matchbattle.<br />
'''Группа - Сохранения'''<br />
*'''нужны''' - если '''да''', то сохраняет результаты игры в опции.<br />
*'''сохранять глобально''' - (prof) Если ==0, то значение будет сохранено в текущий профиль, если 1 - то глобально.<br />
*'''место''' - место в опциях, куда сохраняются данные игры.<br />
*'''флаг старых сейвов''' - (old_records) Место в опциях, куда пишем флаг 1 , когда считали и отправили сейвы со старого бабл шутера<br />
<br />
=Графика=<br />
*'''красные шарики''' - графический ресурс шарика данного цвета.<br />
*'''зеленые шарики''' - графический ресурс шарика данного цвета.<br />
*'''синие шарики''' - графический ресурс шарика данного цвета.<br />
*'''желтые шарики''' - графический ресурс шарика данного цвета.<br />
*'''голубые шарики''' - графический ресурс шарика данного цвета.<br />
*'''пурпурные шарики''' - графический ресурс шарика данного цвета.<br />
<br />
<br />
=Прицел=<br />
*'''res''' - Графический ресурс прицела, перетаскивается из редактора ресурсов.<br />
*'''Время''' - Время от нажатия до момента появления прицела.<br />
*'''Время перед мувом''' - Время от нажатия до момента появления прицела в движении.<br />
*'''Смещение''' - Расстояние между пальцем и центром прицела.<br />
<br />
<br />
=Курсор=<br />
*'''res''' - Графический ресурс курсора, перетаскивается из редактора ресурсов.<br />
*'''Кол-во шариков''' - количество шариков в курсоре.<br />
*'''Отражения''' - максимальное кол-во отражений от стенок.<br />
*'''минимальный скейл''' - (curminsc) минимальный скейл графики шариков<br />
*'''максимальный скейл''' - (curmaxsc) максимальный скейл графики шариков<br />
*'''время скалирования''' - (cursctm) время скалирования шариков<br />
<br />
=Эффекты=<br />
*'''Удар бомбы об гвоздь''' - объект, запускаемый на месте удара бомбы об гвоздь.<br />
*'''Удар шара об гвоздь''' - объект, запускаемый на месте удара шарика об гвоздь.<br />
*'''Очки в намберсах''' - объект, запускаемый в месте лопанья шариков.<br />
*'''Очки в намберсах 2''' - объект с финальными очками, летящими в цель.<br />
<br />
<br />
=Слушатели=<br />
*'''Выстрел''' - объект, которому передаются нижеследующие состояния при выстреле из пушки. Состояния: '''shot''' - выстрел обычным шариком, '''mine''' - выстрел миной, '''color''' - выстрел цветной бомбой, '''bullet''' - выстрел бомбой-ядром.<br />
<br />
<br />
=настройки Lost Numbers=<br />
*'''время перекрашивания''' - (lnreptm)<br />
*'''макс скейл перекрашивания''' - (lnrepmaxsc)<br />
*'''перекрашивать сразу''' - (lnrepimm) нет=0, да=1<br />
<br />
<br />
=Настройки=<br />
[[Файл:02-01-2014 13-40-18.png|250px|thumb|right]]<br />
*'''Позиция стреляющего''' - Позиция стреляющего шарика (x;y)<br />
*'''Расстояние от следующего''' - Расстояние от стреляющего шарика до следующего за ним.<br />
*'''Высота физической сетки''' - Высота физической сетки поля.<br />
*'''Ширина физической сетки''' - Ширина физической сетки поля.<br />
*'''Смещение''' - Смешение поля относительно начала координат родителя.<br />
*'''Радиус шариков''' - Радиус шариков.<br />
*'''Мин.радиус шариков''' - Мин.размер шариков во время "взрыва".<br />
*'''Макс.радиус шариков''' - Макс.размер шариков во время "взрыва".<br />
*'''Ширина шариков''' - Ширина шариков на поле. Вычисляется по формуле (2R+2).<br />
*'''Высота шариков''' - Высота шариков на поле. Вычисляется по формуле (2R-2).<br />
*'''Мин.энергия''' - Мин.энергия выстрела. (или что-то в этом духе, более точной информацией обладает только создатель оригинального кода баббла)<br />
*'''Макс.энергия''' - Макс.энергия выстрела.<br />
*'''Уровень''' - Уровень игры: новичок, любитель, эксперт, мастер, кастомный (настройки уровня сложности зависят от параметров заданных в добавляемом поле "уровень сложности")<br />
*'''Вид игры''' - Режим игры: аркада, стратегия. Режим Аркада был создан для моды "битва", в котором предусматривалось добавление доп.рядов через определенное время бездействия игрока.<br />
[[Файл:02-01-2014 10-04-52.png|250px|thumb|right]]<br />
*'''Начальные шаги до наезда''' - Количество шагов через которое поле "накажет" игрока дополнительными рядами.<br />
*'''Промежутки добавления''' - Время через которое будут добавляться следующий ряд (в режиме Аркада).<br />
*'''Добавление рядов''' - Разрешить добавление рядов. Иначе только извне. Целесообразно использовать в снукере.<br />
*'''Тип досыпания''' - Тип досыпания шариков. Снукер или классический бабблшутер.<br />
*'''Обваливать висячие''' - Обваливать висячие шарики (да/нет). Отключение этого параметра используется в игре снукер.<br />
*'''Отскок от потолка''' - Название говорит само за себя. Используется в снукере.<br />
*'''Файл-описание уровня''' - Файл формата .xml в котором будет построены уровни для игры. Пример приведен справа.<br />
*'''Номер уровня в файле''' - Стартовый уровень, с которого будет начинаться игра.<br />
<br />
<br />
=Параметры бомб=<br />
===Мина===<br />
[[Файл:02-01-2014 13-37-11.png|250px|thumb|right]]<br />
*'''res''' - Графический ресурс мины в пушке.<br />
*'''res1''' - Графический ресурс мины в полете.<br />
*'''Вероятность''' - Вероятность появления данной бомбы.<br />
*'''Скип''' - Количество пропущенных первых шагов для появления бомбы (не реализовано).<br />
*'''Количество''' - Количество появления бомбы за одну игровую сессию.<br />
*'''Шаги''' - Количество шагов до появления данной бомбы.<br />
*'''Шаги ok''' - Количество удачных шагов до появления бомбы.<br />
*'''Шаги miss''' - Количество неудачных шагов до появления бомбы.<br />
*'''n1''' - Минимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''n2''' - Максимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''Радиус''' - Радиус взрыва данной бомбы<br />
*'''Эффект''' - Эффект на месте взрыва бомбы. Объект должен иметь состояние beg.<br />
<br />
===Цвет===<br />
*'''res''' - Графический ресурс бомбы-цвет в пушке.<br />
*'''res1''' - Графический ресурс бомбы-цвет в полете.<br />
*'''Вероятность''' - Вероятность появления данной бомбы.<br />
*'''Скип''' - Количество пропущенных первых шагов для появления бомбы (не реализовано).<br />
*'''Количество''' - Количество появления бомбы за одну игровую сессию.<br />
*'''Шаги''' - Количество шагов до появления данной бомбы.<br />
*'''Шаги ok''' - Количество удачных шагов до появления бомбы.<br />
*'''Шаги miss''' - Количество неудачных шагов до появления бомбы.<br />
*'''n1''' - Минимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''n2''' - Максимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
<br />
===Ядро===<br />
*'''res''' - Графический ресурс ядра в пушке.<br />
*'''res1''' - Графический ресурс ядра в полете.<br />
*'''Вероятность''' - Вероятность появления данной бомбы.<br />
*'''Скип''' - Количество пропущенных первых шагов для появления бомбы (не реализовано).<br />
*'''Количество''' - Количество появления бомбы за одну игровую сессию.<br />
*'''Шаги''' - Количество шагов до появления данной бомбы.<br />
*'''Шаги ok''' - Количество удачных шагов до появления бомбы.<br />
*'''Шаги miss''' - Количество неудачных шагов до появления бомбы.<br />
*'''n1''' - Минимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''n2''' - Максимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''Флайер''' - Флайер летящий под бомбочкой.<br />
*'''Флайер 2''' - Флайер летящий под бомбочкой.<br />
*'''Скорость''' - Скорость перемещения бомбочки.<br />
*'''Число отскоков''' - Число отскоков от стен для бомбочки.<br />
<br />
<br />
=Звуки=<br />
*'''shot''' - Звук выстрела.<br />
*'''fail''' - Звук промаха.<br />
*'''explosion''' - Звук взрыва шариков.<br />
*'''intro''' - Звук в начале игры.<br />
*'''game over''' - Звук окончания игры.<br />
*'''bomb mine''' - Звук выстрела бомбы "мина".<br />
*'''bomb bullet''' - Звук выстрела бомбы "ядро".<br />
*'''bomb color''' - Звук выстрела бомбы "цвет".<br />
*'''Взрыв бомбы мина''' - Говорит само за себя.<br />
*'''Взрыв бомбы ядро''' - Говорит само за себя.<br />
*'''Взрыв бомбы цвет''' - Говорит само за себя.<br />
<br />
<br />
=Очковая система=<br />
*'''Тип''' - ''classic'', ''lostnumbers'', ''nightopera''<br />
*'''Визуализатор шагов''' - счетчик, прогресс, которые отображает оставшееся количество шагов до "наезда".<br />
*'''Визуализатор последних очков''' - счетчик, таймер, прогресс последних очков.<br />
*'''Аниматор последних очков''' - машина со счетчиком (подобъектом), которая запускается в месте попадания шарика. Должна иметь состояние ''show''.<br />
*'''Тип подсчета''' - очки могут считаться как: 1) количество сматченных шариков * на kBub; 2) сумма порядковых номеров (сматчили 4 шарика -> очки = 1+2+3+4)<br />
*'''kBub''' - коэффициент за сматченные шарики.<br />
*'''kCmb''' - коэффициент за комбо.<br />
*'''kMov''' - коэффициент за оставшиеся ходы.<br />
*'''kTim''' - коэффициент за оставшиеся секунды.<br />
*'''kPst''' - коэффициент за удаленные с поля вредители.<br />
*'''kSnw''' - коэффициент за удаленные с поля снежинки.<br />
<br />
<br />
= Состояния =<br />
*'''pause''' - перевести объект в паузу; <br />
*'''resume''' - вытащить объект из паузы;<br />
*'''hint''' - выполнить хинт ( нужно в поле hntt указать номер хинта);<br />
*'''gover''' - <br />
*'''game_continue''' - продолжить игру (например, в случае, когда мы проиграли, но даем игроку шанс, убрав несколько нижних линий);<br />
*'''game_lose''' - задекларировать проигрыш (например, когда мы проиграли, и игрок отказался от шанса продолжить игру);<br />
*'''cur_on''' - отображать траекторию при прицеливании;<br />
*'''cur_off''' - убрать траекторию при прицеливании;<br />
*'''fbubswap''' - поменять местами шарики в пушке;<br />
*'''del_bottom''' - удалить несколько (задается параметром) нижних рядов;<br />
*'''effdigsc2''' - <br />
*'''update_params''' - обновить параметры объекта(пока только номер фрейма клипа шариков);<br />
*'''reset_game''' - сбросит игру , которая сохранена в опциях;<br />
*'''send_stat''' - отправить статистику.<br />
<br />
<br />
<br />
<br />
=Добавляемые параметры=<br />
<br />
===[[Файл:+.png]] Графический ресурс===<br />
*'''Клип''' - Графический ресурс, перетаскивается из редактора ресурсов.<br />
*'''Номер цвета''' - Номер цвета, который будет соответствовать значению цвета в файле-уровня.<br />
<br />
<br />
===[[Файл:+.png]] Ресурсы функциональных шариков===<br />
[[Файл:03-02-2014 10-35-45.png|200px|thumb|right]]<br />
*'''Функционал''' - Записываем значение чудо-шарика из файла-настроек.<br />
*'''Клип''' - Графический ресурс шариков, обладающих данным функционалом.<br />
*'''Звук''' - Звук шарика, обладающего данным функционалом.<br />
*'''Эффект''' - Машина/Патикл обладающие состоянием beg.<br />
<br />
<br />
===[[Файл:+.png]] Параметры анимации для шарика лунка===<br />
*'''Время перемещения''' - время движения шарика в центр лунки.<br />
*'''Время исчезновения''' - время исчезновения шарика в лунке (скейл).<br />
*'''Время жизни''' - время жизни эффекта.<br />
<br />
<br />
===[[Файл:+.png]] Параметры анимации для шарика колючка===<br />
*'''Время жизни''' - время жизни эффекта.<br />
<br />
<br />
===[[Файл:+.png]] Параметры анимации для шарика снежинка===<br />
*'''Время жизни''' - время жизни эффекта.<br />
<br />
<br />
===[[Файл:+.png]] Параметры анимации для шарика вредитель===<br />
*'''Время жизни''' - время жизни эффекта.<br />
*'''Время ожидания скина''' - время, пока поменяется скин шарика.<br />
*'''Эффект''' - эффект, возникающий в момент обрастания вредителя снежинками.<br />
<br />
<br />
===[[Файл:+.png]] Физика===<br />
[[Файл:02-01-2014 13-57-15.png|250px|thumb|right]]<br />
*'''Справа находится пример настроек физики для шариков радиусом 24.'''<br />
*'''Move''' - Коэффициент отталкивания летящего шарика.<br />
*'''MinDest2''' - Квадрат минимального расстояния, когда шарик считается в покое.<br />
*'''MinVel2''' - Квадрат минимальной скорости, когда шарик считается в покое.<br />
*'''Down''' - Трение.<br />
*'''MaxVel''' - Максимальная скорость колебаний.<br />
*'''Elast''' - Эластичность с-мы (коэффициент для сил действующих между соседними шариками).<br />
*'''Glue''' - Коэффициент притяжения шарика к центру ячейки.<br />
*'''MoveC''' - Радиус действия летящего шарика в ячейках.<br />
*'''BangVel''' - Приращение для скорости взрыва.<br />
<br />
<br />
===[[Файл:+.png]] Уровень сложности===<br />
''Название параметров говорит само за себя. Создавать их можно бесконечное множество, главное не забывать назначать им порядковые номера в поле "уровень" по мере добавления новых уровней. Количество уровней сложности внутри объекта должно соответствовать количеству уровней сложности у необходимого Вам монстра. Количество цветов заданное в файле-настройках .xml имеет приоритет над теми, что мы задаем в объекте.''<br />
*'''Уровень''' - номер уровня.<br />
*'''Кол-во цветов''' - число цветов на поле.<br />
*'''Шаги до наезда''' - число шагов до наезда.<br />
*'''Бомба мина: вероятность''' - вероятность появления мины в процентах.<br />
*'''Бомба мина: радиус''' - радиус мины в шариках.<br />
*'''Бомба ядро:вероятность''' - вероятность появления ядра в процентах.<br />
*'''Бомба ядро: число отскоков от стен''' - число отскоков ядра от стен поля.<br />
*'''Бомба цвет: количество''' - число бомб-цвет, которые появятся на уровне.<br />
*'''Бомба цвет: шаги''' - число шагов вначале уровня до появления бомбы-цвет.<br />
<br />
<br />
===[[Файл:+.png]] Визуализатор общих очков===<br />
*'''Объект''' - счетчик, прогресс, показывающий сумму очков за уровень.<br />
<br />
<br />
===[[Файл:+.png]] Игра выиграна: изменить состояние объекта===<br />
*'''Объект''' - объект, состояние которого меняем при выигрыше.<br />
*'''Состояние''' - новое состояние объекта.<br />
<br />
<br />
===[[Файл:+.png]] Игра выиграна: изменить параметр объекта===<br />
*'''Объект''' - объект, параметр которого меняем при выигрыше.<br />
*'''Параметр''' - параметр, который меняем.<br />
*'''Значение''' - новое значение параметра.<br />
<br />
<br />
===[[Файл:+.png]] Игра проиграна: изменить состояние объекта===<br />
*'''Объект''' - объект, состояние которого меняем при проигрыше.<br />
*'''Состояние''' - новое состояние объекта.<br />
<br />
===[[Файл:+.png]] Игра проиграна: изменить параметр объекта===<br />
*'''Объект''' - объект, параметр которого меняем при проигрыше.<br />
*'''Параметр''' - параметр, который меняем.<br />
*'''Значение''' - новое значение параметра.<br />
<br />
<br />
===[[Файл:+.png]] Выбили цвет: изменить состояние объекта===<br />
*'''Объект''' - объект, состояние которого меняем при удалении цвета с поля. При этом BSh передает указанному объекту параметр ''param_removed_colors'' со значением количества выбитых цветов за данный ход.<br />
*'''Состояние''' - новое состояние объекта.<br />
<br />
<br />
=Хинты=<br />
*'''Замена шарика''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=0, после чего передать состояние hint.<br />
*'''Удаление цвета''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=5, после чего передать состояние hint.<br />
*'''Ядро''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=3, после чего передать состояние hint.<br />
*'''Мина''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=1, после чего передать состояние hint.<br />
*'''Курсор''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=0, после чего передать состояние cur_on. После выстрела курсор исчезает.<br />
<br />
<br />
=Пример проекта=<br />
S:\!MOBILE\!!!EditorGames\Wiki_sample\bubble_snooker_graphprogress.zip<br />
<br />
<br />
=Пример реализации: задание уровня=<br />
<br />
::'''1)''' Если нам необходимо задать уровень шутеру прямиком из экрана где он находиться, и при этом он уже запустился (прорисовалась графика). То с начало мы должны передать ему состояние end, после чего задать необходимый уровень и переинитить сцену на которой он находиться (желательно чтобы на этой сцене был только шутер):<br />
<br />
[[Файл:Bubble change level.png|centre]]<br />
<br />
<br />
::'''2)''' Если же, мы задаем нужный уровень удалённо ( с другого экрана), то мы расшариваем экран с самим шутером на сцену где будем задавать ему новый уровень. И на том экране (удалённом) задаём шутеру нужный уровень (levelNum). <br />
<br />
[[Category:Game mechanic]]</div>Iskoroboghttps://wiki.appsalutecreator.com/index.php?title=Bubble_Shooter&diff=8605Bubble Shooter2017-03-15T07:40:22Z<p>Iskorobog: /* настройки Lost Numbers */</p>
<hr />
<div>{{TOC right}}<br />
Игровая механика BubbleShooter.<br />
<br />
=BubbleShooter Setup=<br />
'''Общие настройки'''<br />
*''' память''' - (memo) Если 1, то при повторном открытии экрана объект не обновляет свои параметры (помнит текущие параметры, оставшиеся от предыдущего посещения экрана)<br />
*'''res''' - графичесий ресурс поля для игры. Его размер является зоной для тапа.<br />
*'''Слушатель''' - объект типа Matchbattle.<br />
'''Группа - Сохранения'''<br />
*'''нужны''' - если '''да''', то сохраняет результаты игры в опции.<br />
*'''сохранять глобально''' - (prof) Если ==0, то значение будет сохранено в текущий профиль, если 1 - то глобально.<br />
*'''место''' - место в опциях, куда сохраняются данные игры.<br />
*'''флаг старых сейвов''' - (old_records) Место в опциях, куда пишем флаг 1 , когда считали и отправили сейвы со старого бабл шутера<br />
<br />
=Графика=<br />
*'''красные шарики''' - графический ресурс шарика данного цвета.<br />
*'''зеленые шарики''' - графический ресурс шарика данного цвета.<br />
*'''синие шарики''' - графический ресурс шарика данного цвета.<br />
*'''желтые шарики''' - графический ресурс шарика данного цвета.<br />
*'''голубые шарики''' - графический ресурс шарика данного цвета.<br />
*'''пурпурные шарики''' - графический ресурс шарика данного цвета.<br />
<br />
<br />
=Прицел=<br />
*'''res''' - Графический ресурс прицела, перетаскивается из редактора ресурсов.<br />
*'''Время''' - Время от нажатия до момента появления прицела.<br />
*'''Время перед мувом''' - Время от нажатия до момента появления прицела в движении.<br />
*'''Смещение''' - Расстояние между пальцем и центром прицела.<br />
<br />
<br />
=Курсор=<br />
*'''res''' - Графический ресурс курсора, перетаскивается из редактора ресурсов.<br />
*'''Кол-во шариков''' - количество шариков в курсоре.<br />
*'''Отражения''' - максимальное кол-во отражений от стенок.<br />
*'''минимальный скейл''' - (curminsc) минимальный скейл графики шариков<br />
*'''максимальный скейл''' - (curmaxsc) максимальный скейл графики шариков<br />
*'''время скалирования''' - (cursctm) время скалирования шариков<br />
<br />
=Эффекты=<br />
*'''Удар бомбы об гвоздь''' - объект, запускаемый на месте удара бомбы об гвоздь.<br />
*'''Удар шара об гвоздь''' - объект, запускаемый на месте удара шарика об гвоздь.<br />
*'''Очки в намберсах''' - объект, запускаемый в месте лопанья шариков.<br />
*'''Очки в намберсах 2''' - объект с финальными очками, летящими в цель.<br />
<br />
<br />
=Слушатели=<br />
*'''Выстрел''' - объект, которому передаются нижеследующие состояния при выстреле из пушки. Состояния: '''shot''' - выстрел обычным шариком, '''mine''' - выстрел миной, '''color''' - выстрел цветной бомбой, '''bullet''' - выстрел бомбой-ядром.<br />
<br />
<br />
=настройки Lost Numbers=<br />
*'''время перекрашивания''' - (lnreptm)<br />
*'''макс скейл перекрашивания''' - (lnrepmaxsc)<br />
*'''перекрашивать сразу''' - (lnrepimm) нет=0, да=1<br />
<br />
=Настройки=<br />
[[Файл:02-01-2014 13-40-18.png|250px|thumb|right]]<br />
*'''Позиция стреляющего''' - Позиция стреляющего шарика (x;y)<br />
*'''Расстояние от следующего''' - Расстояние от стреляющего шарика до следующего за ним.<br />
*'''Высота физической сетки''' - Высота физической сетки поля.<br />
*'''Ширина физической сетки''' - Ширина физической сетки поля.<br />
*'''Смещение''' - Смешение поля относительно начала координат родителя.<br />
*'''Радиус шариков''' - Радиус шариков.<br />
*'''Мин.радиус шариков''' - Мин.размер шариков во время "взрыва".<br />
*'''Макс.радиус шариков''' - Макс.размер шариков во время "взрыва".<br />
*'''Ширина шариков''' - Ширина шариков на поле. Вычисляется по формуле (2R+2).<br />
*'''Высота шариков''' - Высота шариков на поле. Вычисляется по формуле (2R-2).<br />
*'''Мин.энергия''' - Мин.энергия выстрела. (или что-то в этом духе, более точной информацией обладает только создатель оригинального кода баббла)<br />
*'''Макс.энергия''' - Макс.энергия выстрела.<br />
*'''Уровень''' - Уровень игры: новичок, любитель, эксперт, мастер, кастомный (настройки уровня сложности зависят от параметров заданных в добавляемом поле "уровень сложности")<br />
*'''Вид игры''' - Режим игры: аркада, стратегия. Режим Аркада был создан для моды "битва", в котором предусматривалось добавление доп.рядов через определенное время бездействия игрока.<br />
[[Файл:02-01-2014 10-04-52.png|250px|thumb|right]]<br />
*'''Начальные шаги до наезда''' - Количество шагов через которое поле "накажет" игрока дополнительными рядами.<br />
*'''Промежутки добавления''' - Время через которое будут добавляться следующий ряд (в режиме Аркада).<br />
*'''Добавление рядов''' - Разрешить добавление рядов. Иначе только извне. Целесообразно использовать в снукере.<br />
*'''Тип досыпания''' - Тип досыпания шариков. Снукер или классический бабблшутер.<br />
*'''Обваливать висячие''' - Обваливать висячие шарики (да/нет). Отключение этого параметра используется в игре снукер.<br />
*'''Отскок от потолка''' - Название говорит само за себя. Используется в снукере.<br />
*'''Файл-описание уровня''' - Файл формата .xml в котором будет построены уровни для игры. Пример приведен справа.<br />
*'''Номер уровня в файле''' - Стартовый уровень, с которого будет начинаться игра.<br />
<br />
<br />
=Параметры бомб=<br />
===Мина===<br />
[[Файл:02-01-2014 13-37-11.png|250px|thumb|right]]<br />
*'''res''' - Графический ресурс мины в пушке.<br />
*'''res1''' - Графический ресурс мины в полете.<br />
*'''Вероятность''' - Вероятность появления данной бомбы.<br />
*'''Скип''' - Количество пропущенных первых шагов для появления бомбы (не реализовано).<br />
*'''Количество''' - Количество появления бомбы за одну игровую сессию.<br />
*'''Шаги''' - Количество шагов до появления данной бомбы.<br />
*'''Шаги ok''' - Количество удачных шагов до появления бомбы.<br />
*'''Шаги miss''' - Количество неудачных шагов до появления бомбы.<br />
*'''n1''' - Минимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''n2''' - Максимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''Радиус''' - Радиус взрыва данной бомбы<br />
*'''Эффект''' - Эффект на месте взрыва бомбы. Объект должен иметь состояние beg.<br />
<br />
===Цвет===<br />
*'''res''' - Графический ресурс бомбы-цвет в пушке.<br />
*'''res1''' - Графический ресурс бомбы-цвет в полете.<br />
*'''Вероятность''' - Вероятность появления данной бомбы.<br />
*'''Скип''' - Количество пропущенных первых шагов для появления бомбы (не реализовано).<br />
*'''Количество''' - Количество появления бомбы за одну игровую сессию.<br />
*'''Шаги''' - Количество шагов до появления данной бомбы.<br />
*'''Шаги ok''' - Количество удачных шагов до появления бомбы.<br />
*'''Шаги miss''' - Количество неудачных шагов до появления бомбы.<br />
*'''n1''' - Минимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''n2''' - Максимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
<br />
===Ядро===<br />
*'''res''' - Графический ресурс ядра в пушке.<br />
*'''res1''' - Графический ресурс ядра в полете.<br />
*'''Вероятность''' - Вероятность появления данной бомбы.<br />
*'''Скип''' - Количество пропущенных первых шагов для появления бомбы (не реализовано).<br />
*'''Количество''' - Количество появления бомбы за одну игровую сессию.<br />
*'''Шаги''' - Количество шагов до появления данной бомбы.<br />
*'''Шаги ok''' - Количество удачных шагов до появления бомбы.<br />
*'''Шаги miss''' - Количество неудачных шагов до появления бомбы.<br />
*'''n1''' - Минимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''n2''' - Максимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''Флайер''' - Флайер летящий под бомбочкой.<br />
*'''Флайер 2''' - Флайер летящий под бомбочкой.<br />
*'''Скорость''' - Скорость перемещения бомбочки.<br />
*'''Число отскоков''' - Число отскоков от стен для бомбочки.<br />
<br />
<br />
=Звуки=<br />
*'''shot''' - Звук выстрела.<br />
*'''fail''' - Звук промаха.<br />
*'''explosion''' - Звук взрыва шариков.<br />
*'''intro''' - Звук в начале игры.<br />
*'''game over''' - Звук окончания игры.<br />
*'''bomb mine''' - Звук выстрела бомбы "мина".<br />
*'''bomb bullet''' - Звук выстрела бомбы "ядро".<br />
*'''bomb color''' - Звук выстрела бомбы "цвет".<br />
*'''Взрыв бомбы мина''' - Говорит само за себя.<br />
*'''Взрыв бомбы ядро''' - Говорит само за себя.<br />
*'''Взрыв бомбы цвет''' - Говорит само за себя.<br />
<br />
<br />
=Очковая система=<br />
*'''Тип''' - ''classic'', ''lostnumbers'', ''nightopera''<br />
*'''Визуализатор шагов''' - счетчик, прогресс, которые отображает оставшееся количество шагов до "наезда".<br />
*'''Визуализатор последних очков''' - счетчик, таймер, прогресс последних очков.<br />
*'''Аниматор последних очков''' - машина со счетчиком (подобъектом), которая запускается в месте попадания шарика. Должна иметь состояние ''show''.<br />
*'''Тип подсчета''' - очки могут считаться как: 1) количество сматченных шариков * на kBub; 2) сумма порядковых номеров (сматчили 4 шарика -> очки = 1+2+3+4)<br />
*'''kBub''' - коэффициент за сматченные шарики.<br />
*'''kCmb''' - коэффициент за комбо.<br />
*'''kMov''' - коэффициент за оставшиеся ходы.<br />
*'''kTim''' - коэффициент за оставшиеся секунды.<br />
*'''kPst''' - коэффициент за удаленные с поля вредители.<br />
*'''kSnw''' - коэффициент за удаленные с поля снежинки.<br />
<br />
<br />
= Состояния =<br />
*'''pause''' - перевести объект в паузу; <br />
*'''resume''' - вытащить объект из паузы;<br />
*'''hint''' - выполнить хинт ( нужно в поле hntt указать номер хинта);<br />
*'''gover''' - <br />
*'''game_continue''' - продолжить игру (например, в случае, когда мы проиграли, но даем игроку шанс, убрав несколько нижних линий);<br />
*'''game_lose''' - задекларировать проигрыш (например, когда мы проиграли, и игрок отказался от шанса продолжить игру);<br />
*'''cur_on''' - отображать траекторию при прицеливании;<br />
*'''cur_off''' - убрать траекторию при прицеливании;<br />
*'''fbubswap''' - поменять местами шарики в пушке;<br />
*'''del_bottom''' - удалить несколько (задается параметром) нижних рядов;<br />
*'''effdigsc2''' - <br />
*'''update_params''' - обновить параметры объекта(пока только номер фрейма клипа шариков);<br />
*'''reset_game''' - сбросит игру , которая сохранена в опциях;<br />
*'''send_stat''' - отправить статистику.<br />
<br />
<br />
<br />
<br />
=Добавляемые параметры=<br />
<br />
===[[Файл:+.png]] Графический ресурс===<br />
*'''Клип''' - Графический ресурс, перетаскивается из редактора ресурсов.<br />
*'''Номер цвета''' - Номер цвета, который будет соответствовать значению цвета в файле-уровня.<br />
<br />
<br />
===[[Файл:+.png]] Ресурсы функциональных шариков===<br />
[[Файл:03-02-2014 10-35-45.png|200px|thumb|right]]<br />
*'''Функционал''' - Записываем значение чудо-шарика из файла-настроек.<br />
*'''Клип''' - Графический ресурс шариков, обладающих данным функционалом.<br />
*'''Звук''' - Звук шарика, обладающего данным функционалом.<br />
*'''Эффект''' - Машина/Патикл обладающие состоянием beg.<br />
<br />
<br />
===[[Файл:+.png]] Параметры анимации для шарика лунка===<br />
*'''Время перемещения''' - время движения шарика в центр лунки.<br />
*'''Время исчезновения''' - время исчезновения шарика в лунке (скейл).<br />
*'''Время жизни''' - время жизни эффекта.<br />
<br />
<br />
===[[Файл:+.png]] Параметры анимации для шарика колючка===<br />
*'''Время жизни''' - время жизни эффекта.<br />
<br />
<br />
===[[Файл:+.png]] Параметры анимации для шарика снежинка===<br />
*'''Время жизни''' - время жизни эффекта.<br />
<br />
<br />
===[[Файл:+.png]] Параметры анимации для шарика вредитель===<br />
*'''Время жизни''' - время жизни эффекта.<br />
*'''Время ожидания скина''' - время, пока поменяется скин шарика.<br />
*'''Эффект''' - эффект, возникающий в момент обрастания вредителя снежинками.<br />
<br />
<br />
===[[Файл:+.png]] Физика===<br />
[[Файл:02-01-2014 13-57-15.png|250px|thumb|right]]<br />
*'''Справа находится пример настроек физики для шариков радиусом 24.'''<br />
*'''Move''' - Коэффициент отталкивания летящего шарика.<br />
*'''MinDest2''' - Квадрат минимального расстояния, когда шарик считается в покое.<br />
*'''MinVel2''' - Квадрат минимальной скорости, когда шарик считается в покое.<br />
*'''Down''' - Трение.<br />
*'''MaxVel''' - Максимальная скорость колебаний.<br />
*'''Elast''' - Эластичность с-мы (коэффициент для сил действующих между соседними шариками).<br />
*'''Glue''' - Коэффициент притяжения шарика к центру ячейки.<br />
*'''MoveC''' - Радиус действия летящего шарика в ячейках.<br />
*'''BangVel''' - Приращение для скорости взрыва.<br />
<br />
<br />
===[[Файл:+.png]] Уровень сложности===<br />
''Название параметров говорит само за себя. Создавать их можно бесконечное множество, главное не забывать назначать им порядковые номера в поле "уровень" по мере добавления новых уровней. Количество уровней сложности внутри объекта должно соответствовать количеству уровней сложности у необходимого Вам монстра. Количество цветов заданное в файле-настройках .xml имеет приоритет над теми, что мы задаем в объекте.''<br />
*'''Уровень''' - номер уровня.<br />
*'''Кол-во цветов''' - число цветов на поле.<br />
*'''Шаги до наезда''' - число шагов до наезда.<br />
*'''Бомба мина: вероятность''' - вероятность появления мины в процентах.<br />
*'''Бомба мина: радиус''' - радиус мины в шариках.<br />
*'''Бомба ядро:вероятность''' - вероятность появления ядра в процентах.<br />
*'''Бомба ядро: число отскоков от стен''' - число отскоков ядра от стен поля.<br />
*'''Бомба цвет: количество''' - число бомб-цвет, которые появятся на уровне.<br />
*'''Бомба цвет: шаги''' - число шагов вначале уровня до появления бомбы-цвет.<br />
<br />
<br />
===[[Файл:+.png]] Визуализатор общих очков===<br />
*'''Объект''' - счетчик, прогресс, показывающий сумму очков за уровень.<br />
<br />
<br />
===[[Файл:+.png]] Игра выиграна: изменить состояние объекта===<br />
*'''Объект''' - объект, состояние которого меняем при выигрыше.<br />
*'''Состояние''' - новое состояние объекта.<br />
<br />
<br />
===[[Файл:+.png]] Игра выиграна: изменить параметр объекта===<br />
*'''Объект''' - объект, параметр которого меняем при выигрыше.<br />
*'''Параметр''' - параметр, который меняем.<br />
*'''Значение''' - новое значение параметра.<br />
<br />
<br />
===[[Файл:+.png]] Игра проиграна: изменить состояние объекта===<br />
*'''Объект''' - объект, состояние которого меняем при проигрыше.<br />
*'''Состояние''' - новое состояние объекта.<br />
<br />
===[[Файл:+.png]] Игра проиграна: изменить параметр объекта===<br />
*'''Объект''' - объект, параметр которого меняем при проигрыше.<br />
*'''Параметр''' - параметр, который меняем.<br />
*'''Значение''' - новое значение параметра.<br />
<br />
<br />
===[[Файл:+.png]] Выбили цвет: изменить состояние объекта===<br />
*'''Объект''' - объект, состояние которого меняем при удалении цвета с поля. При этом BSh передает указанному объекту параметр ''param_removed_colors'' со значением количества выбитых цветов за данный ход.<br />
*'''Состояние''' - новое состояние объекта.<br />
<br />
<br />
=Хинты=<br />
*'''Замена шарика''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=0, после чего передать состояние hint.<br />
*'''Удаление цвета''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=5, после чего передать состояние hint.<br />
*'''Ядро''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=3, после чего передать состояние hint.<br />
*'''Мина''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=1, после чего передать состояние hint.<br />
*'''Курсор''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=0, после чего передать состояние cur_on. После выстрела курсор исчезает.<br />
<br />
<br />
=Пример проекта=<br />
S:\!MOBILE\!!!EditorGames\Wiki_sample\bubble_snooker_graphprogress.zip<br />
<br />
<br />
=Пример реализации: задание уровня=<br />
<br />
::'''1)''' Если нам необходимо задать уровень шутеру прямиком из экрана где он находиться, и при этом он уже запустился (прорисовалась графика). То с начало мы должны передать ему состояние end, после чего задать необходимый уровень и переинитить сцену на которой он находиться (желательно чтобы на этой сцене был только шутер):<br />
<br />
[[Файл:Bubble change level.png|centre]]<br />
<br />
<br />
::'''2)''' Если же, мы задаем нужный уровень удалённо ( с другого экрана), то мы расшариваем экран с самим шутером на сцену где будем задавать ему новый уровень. И на том экране (удалённом) задаём шутеру нужный уровень (levelNum). <br />
<br />
[[Category:Game mechanic]]</div>Iskoroboghttps://wiki.appsalutecreator.com/index.php?title=Bubble_Shooter&diff=8604Bubble Shooter2017-03-15T07:38:16Z<p>Iskorobog: </p>
<hr />
<div>{{TOC right}}<br />
Игровая механика BubbleShooter.<br />
<br />
=BubbleShooter Setup=<br />
'''Общие настройки'''<br />
*''' память''' - (memo) Если 1, то при повторном открытии экрана объект не обновляет свои параметры (помнит текущие параметры, оставшиеся от предыдущего посещения экрана)<br />
*'''res''' - графичесий ресурс поля для игры. Его размер является зоной для тапа.<br />
*'''Слушатель''' - объект типа Matchbattle.<br />
'''Группа - Сохранения'''<br />
*'''нужны''' - если '''да''', то сохраняет результаты игры в опции.<br />
*'''сохранять глобально''' - (prof) Если ==0, то значение будет сохранено в текущий профиль, если 1 - то глобально.<br />
*'''место''' - место в опциях, куда сохраняются данные игры.<br />
*'''флаг старых сейвов''' - (old_records) Место в опциях, куда пишем флаг 1 , когда считали и отправили сейвы со старого бабл шутера<br />
<br />
=Графика=<br />
*'''красные шарики''' - графический ресурс шарика данного цвета.<br />
*'''зеленые шарики''' - графический ресурс шарика данного цвета.<br />
*'''синие шарики''' - графический ресурс шарика данного цвета.<br />
*'''желтые шарики''' - графический ресурс шарика данного цвета.<br />
*'''голубые шарики''' - графический ресурс шарика данного цвета.<br />
*'''пурпурные шарики''' - графический ресурс шарика данного цвета.<br />
<br />
<br />
=Прицел=<br />
*'''res''' - Графический ресурс прицела, перетаскивается из редактора ресурсов.<br />
*'''Время''' - Время от нажатия до момента появления прицела.<br />
*'''Время перед мувом''' - Время от нажатия до момента появления прицела в движении.<br />
*'''Смещение''' - Расстояние между пальцем и центром прицела.<br />
<br />
<br />
=Курсор=<br />
*'''res''' - Графический ресурс курсора, перетаскивается из редактора ресурсов.<br />
*'''Кол-во шариков''' - количество шариков в курсоре.<br />
*'''Отражения''' - максимальное кол-во отражений от стенок.<br />
*'''минимальный скейл''' - (curminsc) минимальный скейл графики шариков<br />
*'''максимальный скейл''' - (curmaxsc) максимальный скейл графики шариков<br />
*'''время скалирования''' - (cursctm) время скалирования шариков<br />
<br />
=Эффекты=<br />
*'''Удар бомбы об гвоздь''' - объект, запускаемый на месте удара бомбы об гвоздь.<br />
*'''Удар шара об гвоздь''' - объект, запускаемый на месте удара шарика об гвоздь.<br />
*'''Очки в намберсах''' - объект, запускаемый в месте лопанья шариков.<br />
*'''Очки в намберсах 2''' - объект с финальными очками, летящими в цель.<br />
<br />
<br />
=Слушатели=<br />
*'''Выстрел''' - объект, которому передаются нижеследующие состояния при выстреле из пушки. Состояния: '''shot''' - выстрел обычным шариком, '''mine''' - выстрел миной, '''color''' - выстрел цветной бомбой, '''bullet''' - выстрел бомбой-ядром.<br />
<br />
<br />
=настройки Lost Numbers=<br />
<br />
<br />
=Настройки=<br />
[[Файл:02-01-2014 13-40-18.png|250px|thumb|right]]<br />
*'''Позиция стреляющего''' - Позиция стреляющего шарика (x;y)<br />
*'''Расстояние от следующего''' - Расстояние от стреляющего шарика до следующего за ним.<br />
*'''Высота физической сетки''' - Высота физической сетки поля.<br />
*'''Ширина физической сетки''' - Ширина физической сетки поля.<br />
*'''Смещение''' - Смешение поля относительно начала координат родителя.<br />
*'''Радиус шариков''' - Радиус шариков.<br />
*'''Мин.радиус шариков''' - Мин.размер шариков во время "взрыва".<br />
*'''Макс.радиус шариков''' - Макс.размер шариков во время "взрыва".<br />
*'''Ширина шариков''' - Ширина шариков на поле. Вычисляется по формуле (2R+2).<br />
*'''Высота шариков''' - Высота шариков на поле. Вычисляется по формуле (2R-2).<br />
*'''Мин.энергия''' - Мин.энергия выстрела. (или что-то в этом духе, более точной информацией обладает только создатель оригинального кода баббла)<br />
*'''Макс.энергия''' - Макс.энергия выстрела.<br />
*'''Уровень''' - Уровень игры: новичок, любитель, эксперт, мастер, кастомный (настройки уровня сложности зависят от параметров заданных в добавляемом поле "уровень сложности")<br />
*'''Вид игры''' - Режим игры: аркада, стратегия. Режим Аркада был создан для моды "битва", в котором предусматривалось добавление доп.рядов через определенное время бездействия игрока.<br />
[[Файл:02-01-2014 10-04-52.png|250px|thumb|right]]<br />
*'''Начальные шаги до наезда''' - Количество шагов через которое поле "накажет" игрока дополнительными рядами.<br />
*'''Промежутки добавления''' - Время через которое будут добавляться следующий ряд (в режиме Аркада).<br />
*'''Добавление рядов''' - Разрешить добавление рядов. Иначе только извне. Целесообразно использовать в снукере.<br />
*'''Тип досыпания''' - Тип досыпания шариков. Снукер или классический бабблшутер.<br />
*'''Обваливать висячие''' - Обваливать висячие шарики (да/нет). Отключение этого параметра используется в игре снукер.<br />
*'''Отскок от потолка''' - Название говорит само за себя. Используется в снукере.<br />
*'''Файл-описание уровня''' - Файл формата .xml в котором будет построены уровни для игры. Пример приведен справа.<br />
*'''Номер уровня в файле''' - Стартовый уровень, с которого будет начинаться игра.<br />
<br />
<br />
=Параметры бомб=<br />
===Мина===<br />
[[Файл:02-01-2014 13-37-11.png|250px|thumb|right]]<br />
*'''res''' - Графический ресурс мины в пушке.<br />
*'''res1''' - Графический ресурс мины в полете.<br />
*'''Вероятность''' - Вероятность появления данной бомбы.<br />
*'''Скип''' - Количество пропущенных первых шагов для появления бомбы (не реализовано).<br />
*'''Количество''' - Количество появления бомбы за одну игровую сессию.<br />
*'''Шаги''' - Количество шагов до появления данной бомбы.<br />
*'''Шаги ok''' - Количество удачных шагов до появления бомбы.<br />
*'''Шаги miss''' - Количество неудачных шагов до появления бомбы.<br />
*'''n1''' - Минимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''n2''' - Максимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''Радиус''' - Радиус взрыва данной бомбы<br />
*'''Эффект''' - Эффект на месте взрыва бомбы. Объект должен иметь состояние beg.<br />
<br />
===Цвет===<br />
*'''res''' - Графический ресурс бомбы-цвет в пушке.<br />
*'''res1''' - Графический ресурс бомбы-цвет в полете.<br />
*'''Вероятность''' - Вероятность появления данной бомбы.<br />
*'''Скип''' - Количество пропущенных первых шагов для появления бомбы (не реализовано).<br />
*'''Количество''' - Количество появления бомбы за одну игровую сессию.<br />
*'''Шаги''' - Количество шагов до появления данной бомбы.<br />
*'''Шаги ok''' - Количество удачных шагов до появления бомбы.<br />
*'''Шаги miss''' - Количество неудачных шагов до появления бомбы.<br />
*'''n1''' - Минимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''n2''' - Максимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
<br />
===Ядро===<br />
*'''res''' - Графический ресурс ядра в пушке.<br />
*'''res1''' - Графический ресурс ядра в полете.<br />
*'''Вероятность''' - Вероятность появления данной бомбы.<br />
*'''Скип''' - Количество пропущенных первых шагов для появления бомбы (не реализовано).<br />
*'''Количество''' - Количество появления бомбы за одну игровую сессию.<br />
*'''Шаги''' - Количество шагов до появления данной бомбы.<br />
*'''Шаги ok''' - Количество удачных шагов до появления бомбы.<br />
*'''Шаги miss''' - Количество неудачных шагов до появления бомбы.<br />
*'''n1''' - Минимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''n2''' - Максимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''Флайер''' - Флайер летящий под бомбочкой.<br />
*'''Флайер 2''' - Флайер летящий под бомбочкой.<br />
*'''Скорость''' - Скорость перемещения бомбочки.<br />
*'''Число отскоков''' - Число отскоков от стен для бомбочки.<br />
<br />
<br />
=Звуки=<br />
*'''shot''' - Звук выстрела.<br />
*'''fail''' - Звук промаха.<br />
*'''explosion''' - Звук взрыва шариков.<br />
*'''intro''' - Звук в начале игры.<br />
*'''game over''' - Звук окончания игры.<br />
*'''bomb mine''' - Звук выстрела бомбы "мина".<br />
*'''bomb bullet''' - Звук выстрела бомбы "ядро".<br />
*'''bomb color''' - Звук выстрела бомбы "цвет".<br />
*'''Взрыв бомбы мина''' - Говорит само за себя.<br />
*'''Взрыв бомбы ядро''' - Говорит само за себя.<br />
*'''Взрыв бомбы цвет''' - Говорит само за себя.<br />
<br />
<br />
=Очковая система=<br />
*'''Тип''' - ''classic'', ''lostnumbers'', ''nightopera''<br />
*'''Визуализатор шагов''' - счетчик, прогресс, которые отображает оставшееся количество шагов до "наезда".<br />
*'''Визуализатор последних очков''' - счетчик, таймер, прогресс последних очков.<br />
*'''Аниматор последних очков''' - машина со счетчиком (подобъектом), которая запускается в месте попадания шарика. Должна иметь состояние ''show''.<br />
*'''Тип подсчета''' - очки могут считаться как: 1) количество сматченных шариков * на kBub; 2) сумма порядковых номеров (сматчили 4 шарика -> очки = 1+2+3+4)<br />
*'''kBub''' - коэффициент за сматченные шарики.<br />
*'''kCmb''' - коэффициент за комбо.<br />
*'''kMov''' - коэффициент за оставшиеся ходы.<br />
*'''kTim''' - коэффициент за оставшиеся секунды.<br />
*'''kPst''' - коэффициент за удаленные с поля вредители.<br />
*'''kSnw''' - коэффициент за удаленные с поля снежинки.<br />
<br />
<br />
= Состояния =<br />
*'''pause''' - перевести объект в паузу; <br />
*'''resume''' - вытащить объект из паузы;<br />
*'''hint''' - выполнить хинт ( нужно в поле hntt указать номер хинта);<br />
*'''gover''' - <br />
*'''game_continue''' - продолжить игру (например, в случае, когда мы проиграли, но даем игроку шанс, убрав несколько нижних линий);<br />
*'''game_lose''' - задекларировать проигрыш (например, когда мы проиграли, и игрок отказался от шанса продолжить игру);<br />
*'''cur_on''' - отображать траекторию при прицеливании;<br />
*'''cur_off''' - убрать траекторию при прицеливании;<br />
*'''fbubswap''' - поменять местами шарики в пушке;<br />
*'''del_bottom''' - удалить несколько (задается параметром) нижних рядов;<br />
*'''effdigsc2''' - <br />
*'''update_params''' - обновить параметры объекта(пока только номер фрейма клипа шариков);<br />
*'''reset_game''' - сбросит игру , которая сохранена в опциях;<br />
*'''send_stat''' - отправить статистику.<br />
<br />
<br />
<br />
<br />
=Добавляемые параметры=<br />
<br />
===[[Файл:+.png]] Графический ресурс===<br />
*'''Клип''' - Графический ресурс, перетаскивается из редактора ресурсов.<br />
*'''Номер цвета''' - Номер цвета, который будет соответствовать значению цвета в файле-уровня.<br />
<br />
<br />
===[[Файл:+.png]] Ресурсы функциональных шариков===<br />
[[Файл:03-02-2014 10-35-45.png|200px|thumb|right]]<br />
*'''Функционал''' - Записываем значение чудо-шарика из файла-настроек.<br />
*'''Клип''' - Графический ресурс шариков, обладающих данным функционалом.<br />
*'''Звук''' - Звук шарика, обладающего данным функционалом.<br />
*'''Эффект''' - Машина/Патикл обладающие состоянием beg.<br />
<br />
<br />
===[[Файл:+.png]] Параметры анимации для шарика лунка===<br />
*'''Время перемещения''' - время движения шарика в центр лунки.<br />
*'''Время исчезновения''' - время исчезновения шарика в лунке (скейл).<br />
*'''Время жизни''' - время жизни эффекта.<br />
<br />
<br />
===[[Файл:+.png]] Параметры анимации для шарика колючка===<br />
*'''Время жизни''' - время жизни эффекта.<br />
<br />
<br />
===[[Файл:+.png]] Параметры анимации для шарика снежинка===<br />
*'''Время жизни''' - время жизни эффекта.<br />
<br />
<br />
===[[Файл:+.png]] Параметры анимации для шарика вредитель===<br />
*'''Время жизни''' - время жизни эффекта.<br />
*'''Время ожидания скина''' - время, пока поменяется скин шарика.<br />
*'''Эффект''' - эффект, возникающий в момент обрастания вредителя снежинками.<br />
<br />
<br />
===[[Файл:+.png]] Физика===<br />
[[Файл:02-01-2014 13-57-15.png|250px|thumb|right]]<br />
*'''Справа находится пример настроек физики для шариков радиусом 24.'''<br />
*'''Move''' - Коэффициент отталкивания летящего шарика.<br />
*'''MinDest2''' - Квадрат минимального расстояния, когда шарик считается в покое.<br />
*'''MinVel2''' - Квадрат минимальной скорости, когда шарик считается в покое.<br />
*'''Down''' - Трение.<br />
*'''MaxVel''' - Максимальная скорость колебаний.<br />
*'''Elast''' - Эластичность с-мы (коэффициент для сил действующих между соседними шариками).<br />
*'''Glue''' - Коэффициент притяжения шарика к центру ячейки.<br />
*'''MoveC''' - Радиус действия летящего шарика в ячейках.<br />
*'''BangVel''' - Приращение для скорости взрыва.<br />
<br />
<br />
===[[Файл:+.png]] Уровень сложности===<br />
''Название параметров говорит само за себя. Создавать их можно бесконечное множество, главное не забывать назначать им порядковые номера в поле "уровень" по мере добавления новых уровней. Количество уровней сложности внутри объекта должно соответствовать количеству уровней сложности у необходимого Вам монстра. Количество цветов заданное в файле-настройках .xml имеет приоритет над теми, что мы задаем в объекте.''<br />
*'''Уровень''' - номер уровня.<br />
*'''Кол-во цветов''' - число цветов на поле.<br />
*'''Шаги до наезда''' - число шагов до наезда.<br />
*'''Бомба мина: вероятность''' - вероятность появления мины в процентах.<br />
*'''Бомба мина: радиус''' - радиус мины в шариках.<br />
*'''Бомба ядро:вероятность''' - вероятность появления ядра в процентах.<br />
*'''Бомба ядро: число отскоков от стен''' - число отскоков ядра от стен поля.<br />
*'''Бомба цвет: количество''' - число бомб-цвет, которые появятся на уровне.<br />
*'''Бомба цвет: шаги''' - число шагов вначале уровня до появления бомбы-цвет.<br />
<br />
<br />
===[[Файл:+.png]] Визуализатор общих очков===<br />
*'''Объект''' - счетчик, прогресс, показывающий сумму очков за уровень.<br />
<br />
<br />
===[[Файл:+.png]] Игра выиграна: изменить состояние объекта===<br />
*'''Объект''' - объект, состояние которого меняем при выигрыше.<br />
*'''Состояние''' - новое состояние объекта.<br />
<br />
<br />
===[[Файл:+.png]] Игра выиграна: изменить параметр объекта===<br />
*'''Объект''' - объект, параметр которого меняем при выигрыше.<br />
*'''Параметр''' - параметр, который меняем.<br />
*'''Значение''' - новое значение параметра.<br />
<br />
<br />
===[[Файл:+.png]] Игра проиграна: изменить состояние объекта===<br />
*'''Объект''' - объект, состояние которого меняем при проигрыше.<br />
*'''Состояние''' - новое состояние объекта.<br />
<br />
===[[Файл:+.png]] Игра проиграна: изменить параметр объекта===<br />
*'''Объект''' - объект, параметр которого меняем при проигрыше.<br />
*'''Параметр''' - параметр, который меняем.<br />
*'''Значение''' - новое значение параметра.<br />
<br />
<br />
===[[Файл:+.png]] Выбили цвет: изменить состояние объекта===<br />
*'''Объект''' - объект, состояние которого меняем при удалении цвета с поля. При этом BSh передает указанному объекту параметр ''param_removed_colors'' со значением количества выбитых цветов за данный ход.<br />
*'''Состояние''' - новое состояние объекта.<br />
<br />
<br />
=Хинты=<br />
*'''Замена шарика''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=0, после чего передать состояние hint.<br />
*'''Удаление цвета''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=5, после чего передать состояние hint.<br />
*'''Ядро''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=3, после чего передать состояние hint.<br />
*'''Мина''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=1, после чего передать состояние hint.<br />
*'''Курсор''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=0, после чего передать состояние cur_on. После выстрела курсор исчезает.<br />
<br />
<br />
=Пример проекта=<br />
S:\!MOBILE\!!!EditorGames\Wiki_sample\bubble_snooker_graphprogress.zip<br />
<br />
<br />
=Пример реализации: задание уровня=<br />
<br />
::'''1)''' Если нам необходимо задать уровень шутеру прямиком из экрана где он находиться, и при этом он уже запустился (прорисовалась графика). То с начало мы должны передать ему состояние end, после чего задать необходимый уровень и переинитить сцену на которой он находиться (желательно чтобы на этой сцене был только шутер):<br />
<br />
[[Файл:Bubble change level.png|centre]]<br />
<br />
<br />
::'''2)''' Если же, мы задаем нужный уровень удалённо ( с другого экрана), то мы расшариваем экран с самим шутером на сцену где будем задавать ему новый уровень. И на том экране (удалённом) задаём шутеру нужный уровень (levelNum). <br />
<br />
[[Category:Game mechanic]]</div>Iskoroboghttps://wiki.appsalutecreator.com/index.php?title=Bubble_Shooter&diff=8603Bubble Shooter2017-03-15T07:35:28Z<p>Iskorobog: /* Курсор */</p>
<hr />
<div>{{TOC right}}<br />
Игровая механика BubbleShooter.<br />
<br />
=BubbleShooter Setup=<br />
'''Общие настройки'''<br />
*''' память''' - (memo) Если 1, то при повторном открытии экрана объект не обновляет свои параметры (помнит текущие параметры, оставшиеся от предыдущего посещения экрана)<br />
*'''res''' - графичесий ресурс поля для игры. Его размер является зоной для тапа.<br />
*'''Слушатель''' - объект типа Matchbattle.<br />
'''Группа - Сохранения'''<br />
*'''нужны''' - если '''да''', то сохраняет результаты игры в опции.<br />
*'''сохранять глобально''' - (prof) Если ==0, то значение будет сохранено в текущий профиль, если 1 - то глобально.<br />
*'''место''' - место в опциях, куда сохраняются данные игры.<br />
*'''флаг старых сейвов''' - (old_records) Место в опциях, куда пишем флаг 1 , когда считали и отправили сейвы со старого бабл шутера<br />
<br />
=Графика=<br />
*'''красные шарики''' - графический ресурс шарика данного цвета.<br />
*'''зеленые шарики''' - графический ресурс шарика данного цвета.<br />
*'''синие шарики''' - графический ресурс шарика данного цвета.<br />
*'''желтые шарики''' - графический ресурс шарика данного цвета.<br />
*'''голубые шарики''' - графический ресурс шарика данного цвета.<br />
*'''пурпурные шарики''' - графический ресурс шарика данного цвета.<br />
<br />
<br />
=Прицел=<br />
*'''res''' - Графический ресурс прицела, перетаскивается из редактора ресурсов.<br />
*'''Время''' - Время от нажатия до момента появления прицела.<br />
*'''Время перед мувом''' - Время от нажатия до момента появления прицела в движении.<br />
*'''Смещение''' - Расстояние между пальцем и центром прицела.<br />
<br />
<br />
=Курсор=<br />
*'''res''' - Графический ресурс курсора, перетаскивается из редактора ресурсов.<br />
*'''Кол-во шариков''' - количество шариков в курсоре.<br />
*'''Отражения''' - максимальное кол-во отражений от стенок.<br />
*'''минимальный скейл''' - (curminsc) минимальный скейл графики шариков<br />
*'''максимальный скейл''' - (curmaxsc) максимальный скейл графики шариков<br />
*'''время скалирования''' - (cursctm) время скалирования шариков<br />
<br />
=Эффекты=<br />
*'''Удар бомбы об гвоздь''' - объект, запускаемый на месте удара бомбы об гвоздь.<br />
*'''Удар шара об гвоздь''' - объект, запускаемый на месте удара шарика об гвоздь.<br />
*'''Очки в намберсах''' - объект, запускаемый в месте лопанья шариков.<br />
*'''Очки в намберсах 2''' - объект с финальными очками, летящими в цель.<br />
<br />
<br />
=Слушатели=<br />
*'''Выстрел''' - объект, которому передаются нижеследующие состояния при выстреле из пушки. Состояния: '''shot''' - выстрел обычным шариком, '''mine''' - выстрел миной, '''color''' - выстрел цветной бомбой, '''bullet''' - выстрел бомбой-ядром.<br />
<br />
<br />
=Настройки=<br />
[[Файл:02-01-2014 13-40-18.png|250px|thumb|right]]<br />
*'''Позиция стреляющего''' - Позиция стреляющего шарика (x;y)<br />
*'''Расстояние от следующего''' - Расстояние от стреляющего шарика до следующего за ним.<br />
*'''Высота физической сетки''' - Высота физической сетки поля.<br />
*'''Ширина физической сетки''' - Ширина физической сетки поля.<br />
*'''Смещение''' - Смешение поля относительно начала координат родителя.<br />
*'''Радиус шариков''' - Радиус шариков.<br />
*'''Мин.радиус шариков''' - Мин.размер шариков во время "взрыва".<br />
*'''Макс.радиус шариков''' - Макс.размер шариков во время "взрыва".<br />
*'''Ширина шариков''' - Ширина шариков на поле. Вычисляется по формуле (2R+2).<br />
*'''Высота шариков''' - Высота шариков на поле. Вычисляется по формуле (2R-2).<br />
*'''Мин.энергия''' - Мин.энергия выстрела. (или что-то в этом духе, более точной информацией обладает только создатель оригинального кода баббла)<br />
*'''Макс.энергия''' - Макс.энергия выстрела.<br />
*'''Уровень''' - Уровень игры: новичок, любитель, эксперт, мастер, кастомный (настройки уровня сложности зависят от параметров заданных в добавляемом поле "уровень сложности")<br />
*'''Вид игры''' - Режим игры: аркада, стратегия. Режим Аркада был создан для моды "битва", в котором предусматривалось добавление доп.рядов через определенное время бездействия игрока.<br />
[[Файл:02-01-2014 10-04-52.png|250px|thumb|right]]<br />
*'''Начальные шаги до наезда''' - Количество шагов через которое поле "накажет" игрока дополнительными рядами.<br />
*'''Промежутки добавления''' - Время через которое будут добавляться следующий ряд (в режиме Аркада).<br />
*'''Добавление рядов''' - Разрешить добавление рядов. Иначе только извне. Целесообразно использовать в снукере.<br />
*'''Тип досыпания''' - Тип досыпания шариков. Снукер или классический бабблшутер.<br />
*'''Обваливать висячие''' - Обваливать висячие шарики (да/нет). Отключение этого параметра используется в игре снукер.<br />
*'''Отскок от потолка''' - Название говорит само за себя. Используется в снукере.<br />
*'''Файл-описание уровня''' - Файл формата .xml в котором будет построены уровни для игры. Пример приведен справа.<br />
*'''Номер уровня в файле''' - Стартовый уровень, с которого будет начинаться игра.<br />
<br />
<br />
=Параметры бомб=<br />
===Мина===<br />
[[Файл:02-01-2014 13-37-11.png|250px|thumb|right]]<br />
*'''res''' - Графический ресурс мины в пушке.<br />
*'''res1''' - Графический ресурс мины в полете.<br />
*'''Вероятность''' - Вероятность появления данной бомбы.<br />
*'''Скип''' - Количество пропущенных первых шагов для появления бомбы (не реализовано).<br />
*'''Количество''' - Количество появления бомбы за одну игровую сессию.<br />
*'''Шаги''' - Количество шагов до появления данной бомбы.<br />
*'''Шаги ok''' - Количество удачных шагов до появления бомбы.<br />
*'''Шаги miss''' - Количество неудачных шагов до появления бомбы.<br />
*'''n1''' - Минимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''n2''' - Максимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''Радиус''' - Радиус взрыва данной бомбы<br />
*'''Эффект''' - Эффект на месте взрыва бомбы. Объект должен иметь состояние beg.<br />
<br />
===Цвет===<br />
*'''res''' - Графический ресурс бомбы-цвет в пушке.<br />
*'''res1''' - Графический ресурс бомбы-цвет в полете.<br />
*'''Вероятность''' - Вероятность появления данной бомбы.<br />
*'''Скип''' - Количество пропущенных первых шагов для появления бомбы (не реализовано).<br />
*'''Количество''' - Количество появления бомбы за одну игровую сессию.<br />
*'''Шаги''' - Количество шагов до появления данной бомбы.<br />
*'''Шаги ok''' - Количество удачных шагов до появления бомбы.<br />
*'''Шаги miss''' - Количество неудачных шагов до появления бомбы.<br />
*'''n1''' - Минимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''n2''' - Максимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
<br />
===Ядро===<br />
*'''res''' - Графический ресурс ядра в пушке.<br />
*'''res1''' - Графический ресурс ядра в полете.<br />
*'''Вероятность''' - Вероятность появления данной бомбы.<br />
*'''Скип''' - Количество пропущенных первых шагов для появления бомбы (не реализовано).<br />
*'''Количество''' - Количество появления бомбы за одну игровую сессию.<br />
*'''Шаги''' - Количество шагов до появления данной бомбы.<br />
*'''Шаги ok''' - Количество удачных шагов до появления бомбы.<br />
*'''Шаги miss''' - Количество неудачных шагов до появления бомбы.<br />
*'''n1''' - Минимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''n2''' - Максимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''Флайер''' - Флайер летящий под бомбочкой.<br />
*'''Флайер 2''' - Флайер летящий под бомбочкой.<br />
*'''Скорость''' - Скорость перемещения бомбочки.<br />
*'''Число отскоков''' - Число отскоков от стен для бомбочки.<br />
<br />
<br />
=Звуки=<br />
*'''shot''' - Звук выстрела.<br />
*'''fail''' - Звук промаха.<br />
*'''explosion''' - Звук взрыва шариков.<br />
*'''intro''' - Звук в начале игры.<br />
*'''game over''' - Звук окончания игры.<br />
*'''bomb mine''' - Звук выстрела бомбы "мина".<br />
*'''bomb bullet''' - Звук выстрела бомбы "ядро".<br />
*'''bomb color''' - Звук выстрела бомбы "цвет".<br />
*'''Взрыв бомбы мина''' - Говорит само за себя.<br />
*'''Взрыв бомбы ядро''' - Говорит само за себя.<br />
*'''Взрыв бомбы цвет''' - Говорит само за себя.<br />
<br />
<br />
=Очковая система=<br />
*'''Тип''' - ''classic'', ''lostnumbers'', ''nightopera''<br />
*'''Визуализатор шагов''' - счетчик, прогресс, которые отображает оставшееся количество шагов до "наезда".<br />
*'''Визуализатор последних очков''' - счетчик, таймер, прогресс последних очков.<br />
*'''Аниматор последних очков''' - машина со счетчиком (подобъектом), которая запускается в месте попадания шарика. Должна иметь состояние ''show''.<br />
*'''Тип подсчета''' - очки могут считаться как: 1) количество сматченных шариков * на kBub; 2) сумма порядковых номеров (сматчили 4 шарика -> очки = 1+2+3+4)<br />
*'''kBub''' - коэффициент за сматченные шарики.<br />
*'''kCmb''' - коэффициент за комбо.<br />
*'''kMov''' - коэффициент за оставшиеся ходы.<br />
*'''kTim''' - коэффициент за оставшиеся секунды.<br />
*'''kPst''' - коэффициент за удаленные с поля вредители.<br />
*'''kSnw''' - коэффициент за удаленные с поля снежинки.<br />
<br />
<br />
= Состояния =<br />
*'''pause''' - перевести объект в паузу; <br />
*'''resume''' - вытащить объект из паузы;<br />
*'''hint''' - выполнить хинт ( нужно в поле hntt указать номер хинта);<br />
*'''gover''' - <br />
*'''game_continue''' - продолжить игру (например, в случае, когда мы проиграли, но даем игроку шанс, убрав несколько нижних линий);<br />
*'''game_lose''' - задекларировать проигрыш (например, когда мы проиграли, и игрок отказался от шанса продолжить игру);<br />
*'''cur_on''' - отображать траекторию при прицеливании;<br />
*'''cur_off''' - убрать траекторию при прицеливании;<br />
*'''fbubswap''' - поменять местами шарики в пушке;<br />
*'''del_bottom''' - удалить несколько (задается параметром) нижних рядов;<br />
*'''effdigsc2''' - <br />
*'''update_params''' - обновить параметры объекта(пока только номер фрейма клипа шариков);<br />
*'''reset_game''' - сбросит игру , которая сохранена в опциях;<br />
*'''send_stat''' - отправить статистику.<br />
<br />
<br />
<br />
<br />
=Добавляемые параметры=<br />
<br />
===[[Файл:+.png]] Графический ресурс===<br />
*'''Клип''' - Графический ресурс, перетаскивается из редактора ресурсов.<br />
*'''Номер цвета''' - Номер цвета, который будет соответствовать значению цвета в файле-уровня.<br />
<br />
<br />
===[[Файл:+.png]] Ресурсы функциональных шариков===<br />
[[Файл:03-02-2014 10-35-45.png|200px|thumb|right]]<br />
*'''Функционал''' - Записываем значение чудо-шарика из файла-настроек.<br />
*'''Клип''' - Графический ресурс шариков, обладающих данным функционалом.<br />
*'''Звук''' - Звук шарика, обладающего данным функционалом.<br />
*'''Эффект''' - Машина/Патикл обладающие состоянием beg.<br />
<br />
<br />
===[[Файл:+.png]] Параметры анимации для шарика лунка===<br />
*'''Время перемещения''' - время движения шарика в центр лунки.<br />
*'''Время исчезновения''' - время исчезновения шарика в лунке (скейл).<br />
*'''Время жизни''' - время жизни эффекта.<br />
<br />
<br />
===[[Файл:+.png]] Параметры анимации для шарика колючка===<br />
*'''Время жизни''' - время жизни эффекта.<br />
<br />
<br />
===[[Файл:+.png]] Параметры анимации для шарика снежинка===<br />
*'''Время жизни''' - время жизни эффекта.<br />
<br />
<br />
===[[Файл:+.png]] Параметры анимации для шарика вредитель===<br />
*'''Время жизни''' - время жизни эффекта.<br />
*'''Время ожидания скина''' - время, пока поменяется скин шарика.<br />
*'''Эффект''' - эффект, возникающий в момент обрастания вредителя снежинками.<br />
<br />
<br />
===[[Файл:+.png]] Физика===<br />
[[Файл:02-01-2014 13-57-15.png|250px|thumb|right]]<br />
*'''Справа находится пример настроек физики для шариков радиусом 24.'''<br />
*'''Move''' - Коэффициент отталкивания летящего шарика.<br />
*'''MinDest2''' - Квадрат минимального расстояния, когда шарик считается в покое.<br />
*'''MinVel2''' - Квадрат минимальной скорости, когда шарик считается в покое.<br />
*'''Down''' - Трение.<br />
*'''MaxVel''' - Максимальная скорость колебаний.<br />
*'''Elast''' - Эластичность с-мы (коэффициент для сил действующих между соседними шариками).<br />
*'''Glue''' - Коэффициент притяжения шарика к центру ячейки.<br />
*'''MoveC''' - Радиус действия летящего шарика в ячейках.<br />
*'''BangVel''' - Приращение для скорости взрыва.<br />
<br />
<br />
===[[Файл:+.png]] Уровень сложности===<br />
''Название параметров говорит само за себя. Создавать их можно бесконечное множество, главное не забывать назначать им порядковые номера в поле "уровень" по мере добавления новых уровней. Количество уровней сложности внутри объекта должно соответствовать количеству уровней сложности у необходимого Вам монстра. Количество цветов заданное в файле-настройках .xml имеет приоритет над теми, что мы задаем в объекте.''<br />
*'''Уровень''' - номер уровня.<br />
*'''Кол-во цветов''' - число цветов на поле.<br />
*'''Шаги до наезда''' - число шагов до наезда.<br />
*'''Бомба мина: вероятность''' - вероятность появления мины в процентах.<br />
*'''Бомба мина: радиус''' - радиус мины в шариках.<br />
*'''Бомба ядро:вероятность''' - вероятность появления ядра в процентах.<br />
*'''Бомба ядро: число отскоков от стен''' - число отскоков ядра от стен поля.<br />
*'''Бомба цвет: количество''' - число бомб-цвет, которые появятся на уровне.<br />
*'''Бомба цвет: шаги''' - число шагов вначале уровня до появления бомбы-цвет.<br />
<br />
<br />
===[[Файл:+.png]] Визуализатор общих очков===<br />
*'''Объект''' - счетчик, прогресс, показывающий сумму очков за уровень.<br />
<br />
<br />
===[[Файл:+.png]] Игра выиграна: изменить состояние объекта===<br />
*'''Объект''' - объект, состояние которого меняем при выигрыше.<br />
*'''Состояние''' - новое состояние объекта.<br />
<br />
<br />
===[[Файл:+.png]] Игра выиграна: изменить параметр объекта===<br />
*'''Объект''' - объект, параметр которого меняем при выигрыше.<br />
*'''Параметр''' - параметр, который меняем.<br />
*'''Значение''' - новое значение параметра.<br />
<br />
<br />
===[[Файл:+.png]] Игра проиграна: изменить состояние объекта===<br />
*'''Объект''' - объект, состояние которого меняем при проигрыше.<br />
*'''Состояние''' - новое состояние объекта.<br />
<br />
===[[Файл:+.png]] Игра проиграна: изменить параметр объекта===<br />
*'''Объект''' - объект, параметр которого меняем при проигрыше.<br />
*'''Параметр''' - параметр, который меняем.<br />
*'''Значение''' - новое значение параметра.<br />
<br />
<br />
===[[Файл:+.png]] Выбили цвет: изменить состояние объекта===<br />
*'''Объект''' - объект, состояние которого меняем при удалении цвета с поля. При этом BSh передает указанному объекту параметр ''param_removed_colors'' со значением количества выбитых цветов за данный ход.<br />
*'''Состояние''' - новое состояние объекта.<br />
<br />
<br />
=Хинты=<br />
*'''Замена шарика''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=0, после чего передать состояние hint.<br />
*'''Удаление цвета''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=5, после чего передать состояние hint.<br />
*'''Ядро''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=3, после чего передать состояние hint.<br />
*'''Мина''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=1, после чего передать состояние hint.<br />
*'''Курсор''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=0, после чего передать состояние cur_on. После выстрела курсор исчезает.<br />
<br />
<br />
=Пример проекта=<br />
S:\!MOBILE\!!!EditorGames\Wiki_sample\bubble_snooker_graphprogress.zip<br />
<br />
<br />
=Пример реализации: задание уровня=<br />
<br />
::'''1)''' Если нам необходимо задать уровень шутеру прямиком из экрана где он находиться, и при этом он уже запустился (прорисовалась графика). То с начало мы должны передать ему состояние end, после чего задать необходимый уровень и переинитить сцену на которой он находиться (желательно чтобы на этой сцене был только шутер):<br />
<br />
[[Файл:Bubble change level.png|centre]]<br />
<br />
<br />
::'''2)''' Если же, мы задаем нужный уровень удалённо ( с другого экрана), то мы расшариваем экран с самим шутером на сцену где будем задавать ему новый уровень. И на том экране (удалённом) задаём шутеру нужный уровень (levelNum). <br />
<br />
[[Category:Game mechanic]]</div>Iskoroboghttps://wiki.appsalutecreator.com/index.php?title=Bubble_Shooter&diff=8602Bubble Shooter2017-03-15T07:30:42Z<p>Iskorobog: /* BubbleShooter Setup */</p>
<hr />
<div>{{TOC right}}<br />
Игровая механика BubbleShooter.<br />
<br />
=BubbleShooter Setup=<br />
'''Общие настройки'''<br />
*''' память''' - (memo) Если 1, то при повторном открытии экрана объект не обновляет свои параметры (помнит текущие параметры, оставшиеся от предыдущего посещения экрана)<br />
*'''res''' - графичесий ресурс поля для игры. Его размер является зоной для тапа.<br />
*'''Слушатель''' - объект типа Matchbattle.<br />
'''Группа - Сохранения'''<br />
*'''нужны''' - если '''да''', то сохраняет результаты игры в опции.<br />
*'''сохранять глобально''' - (prof) Если ==0, то значение будет сохранено в текущий профиль, если 1 - то глобально.<br />
*'''место''' - место в опциях, куда сохраняются данные игры.<br />
*'''флаг старых сейвов''' - (old_records) Место в опциях, куда пишем флаг 1 , когда считали и отправили сейвы со старого бабл шутера<br />
<br />
=Графика=<br />
*'''красные шарики''' - графический ресурс шарика данного цвета.<br />
*'''зеленые шарики''' - графический ресурс шарика данного цвета.<br />
*'''синие шарики''' - графический ресурс шарика данного цвета.<br />
*'''желтые шарики''' - графический ресурс шарика данного цвета.<br />
*'''голубые шарики''' - графический ресурс шарика данного цвета.<br />
*'''пурпурные шарики''' - графический ресурс шарика данного цвета.<br />
<br />
<br />
=Прицел=<br />
*'''res''' - Графический ресурс прицела, перетаскивается из редактора ресурсов.<br />
*'''Время''' - Время от нажатия до момента появления прицела.<br />
*'''Время перед мувом''' - Время от нажатия до момента появления прицела в движении.<br />
*'''Смещение''' - Расстояние между пальцем и центром прицела.<br />
<br />
<br />
=Курсор=<br />
*'''res''' - Графический ресурс курсора, перетаскивается из редактора ресурсов.<br />
*'''Кол-во шариков''' - количество шариков в курсоре.<br />
*'''Отражения''' - максимальное кол-во отражений от стенок.<br />
<br />
<br />
=Эффекты=<br />
*'''Удар бомбы об гвоздь''' - объект, запускаемый на месте удара бомбы об гвоздь.<br />
*'''Удар шара об гвоздь''' - объект, запускаемый на месте удара шарика об гвоздь.<br />
*'''Очки в намберсах''' - объект, запускаемый в месте лопанья шариков.<br />
*'''Очки в намберсах 2''' - объект с финальными очками, летящими в цель.<br />
<br />
<br />
=Слушатели=<br />
*'''Выстрел''' - объект, которому передаются нижеследующие состояния при выстреле из пушки. Состояния: '''shot''' - выстрел обычным шариком, '''mine''' - выстрел миной, '''color''' - выстрел цветной бомбой, '''bullet''' - выстрел бомбой-ядром.<br />
<br />
<br />
=Настройки=<br />
[[Файл:02-01-2014 13-40-18.png|250px|thumb|right]]<br />
*'''Позиция стреляющего''' - Позиция стреляющего шарика (x;y)<br />
*'''Расстояние от следующего''' - Расстояние от стреляющего шарика до следующего за ним.<br />
*'''Высота физической сетки''' - Высота физической сетки поля.<br />
*'''Ширина физической сетки''' - Ширина физической сетки поля.<br />
*'''Смещение''' - Смешение поля относительно начала координат родителя.<br />
*'''Радиус шариков''' - Радиус шариков.<br />
*'''Мин.радиус шариков''' - Мин.размер шариков во время "взрыва".<br />
*'''Макс.радиус шариков''' - Макс.размер шариков во время "взрыва".<br />
*'''Ширина шариков''' - Ширина шариков на поле. Вычисляется по формуле (2R+2).<br />
*'''Высота шариков''' - Высота шариков на поле. Вычисляется по формуле (2R-2).<br />
*'''Мин.энергия''' - Мин.энергия выстрела. (или что-то в этом духе, более точной информацией обладает только создатель оригинального кода баббла)<br />
*'''Макс.энергия''' - Макс.энергия выстрела.<br />
*'''Уровень''' - Уровень игры: новичок, любитель, эксперт, мастер, кастомный (настройки уровня сложности зависят от параметров заданных в добавляемом поле "уровень сложности")<br />
*'''Вид игры''' - Режим игры: аркада, стратегия. Режим Аркада был создан для моды "битва", в котором предусматривалось добавление доп.рядов через определенное время бездействия игрока.<br />
[[Файл:02-01-2014 10-04-52.png|250px|thumb|right]]<br />
*'''Начальные шаги до наезда''' - Количество шагов через которое поле "накажет" игрока дополнительными рядами.<br />
*'''Промежутки добавления''' - Время через которое будут добавляться следующий ряд (в режиме Аркада).<br />
*'''Добавление рядов''' - Разрешить добавление рядов. Иначе только извне. Целесообразно использовать в снукере.<br />
*'''Тип досыпания''' - Тип досыпания шариков. Снукер или классический бабблшутер.<br />
*'''Обваливать висячие''' - Обваливать висячие шарики (да/нет). Отключение этого параметра используется в игре снукер.<br />
*'''Отскок от потолка''' - Название говорит само за себя. Используется в снукере.<br />
*'''Файл-описание уровня''' - Файл формата .xml в котором будет построены уровни для игры. Пример приведен справа.<br />
*'''Номер уровня в файле''' - Стартовый уровень, с которого будет начинаться игра.<br />
<br />
<br />
=Параметры бомб=<br />
===Мина===<br />
[[Файл:02-01-2014 13-37-11.png|250px|thumb|right]]<br />
*'''res''' - Графический ресурс мины в пушке.<br />
*'''res1''' - Графический ресурс мины в полете.<br />
*'''Вероятность''' - Вероятность появления данной бомбы.<br />
*'''Скип''' - Количество пропущенных первых шагов для появления бомбы (не реализовано).<br />
*'''Количество''' - Количество появления бомбы за одну игровую сессию.<br />
*'''Шаги''' - Количество шагов до появления данной бомбы.<br />
*'''Шаги ok''' - Количество удачных шагов до появления бомбы.<br />
*'''Шаги miss''' - Количество неудачных шагов до появления бомбы.<br />
*'''n1''' - Минимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''n2''' - Максимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''Радиус''' - Радиус взрыва данной бомбы<br />
*'''Эффект''' - Эффект на месте взрыва бомбы. Объект должен иметь состояние beg.<br />
<br />
===Цвет===<br />
*'''res''' - Графический ресурс бомбы-цвет в пушке.<br />
*'''res1''' - Графический ресурс бомбы-цвет в полете.<br />
*'''Вероятность''' - Вероятность появления данной бомбы.<br />
*'''Скип''' - Количество пропущенных первых шагов для появления бомбы (не реализовано).<br />
*'''Количество''' - Количество появления бомбы за одну игровую сессию.<br />
*'''Шаги''' - Количество шагов до появления данной бомбы.<br />
*'''Шаги ok''' - Количество удачных шагов до появления бомбы.<br />
*'''Шаги miss''' - Количество неудачных шагов до появления бомбы.<br />
*'''n1''' - Минимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''n2''' - Максимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
<br />
===Ядро===<br />
*'''res''' - Графический ресурс ядра в пушке.<br />
*'''res1''' - Графический ресурс ядра в полете.<br />
*'''Вероятность''' - Вероятность появления данной бомбы.<br />
*'''Скип''' - Количество пропущенных первых шагов для появления бомбы (не реализовано).<br />
*'''Количество''' - Количество появления бомбы за одну игровую сессию.<br />
*'''Шаги''' - Количество шагов до появления данной бомбы.<br />
*'''Шаги ok''' - Количество удачных шагов до появления бомбы.<br />
*'''Шаги miss''' - Количество неудачных шагов до появления бомбы.<br />
*'''n1''' - Минимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''n2''' - Максимальное количество шариков взорванных за ход необходимое для появления данной бомбы.<br />
*'''Флайер''' - Флайер летящий под бомбочкой.<br />
*'''Флайер 2''' - Флайер летящий под бомбочкой.<br />
*'''Скорость''' - Скорость перемещения бомбочки.<br />
*'''Число отскоков''' - Число отскоков от стен для бомбочки.<br />
<br />
<br />
=Звуки=<br />
*'''shot''' - Звук выстрела.<br />
*'''fail''' - Звук промаха.<br />
*'''explosion''' - Звук взрыва шариков.<br />
*'''intro''' - Звук в начале игры.<br />
*'''game over''' - Звук окончания игры.<br />
*'''bomb mine''' - Звук выстрела бомбы "мина".<br />
*'''bomb bullet''' - Звук выстрела бомбы "ядро".<br />
*'''bomb color''' - Звук выстрела бомбы "цвет".<br />
*'''Взрыв бомбы мина''' - Говорит само за себя.<br />
*'''Взрыв бомбы ядро''' - Говорит само за себя.<br />
*'''Взрыв бомбы цвет''' - Говорит само за себя.<br />
<br />
<br />
=Очковая система=<br />
*'''Тип''' - ''classic'', ''lostnumbers'', ''nightopera''<br />
*'''Визуализатор шагов''' - счетчик, прогресс, которые отображает оставшееся количество шагов до "наезда".<br />
*'''Визуализатор последних очков''' - счетчик, таймер, прогресс последних очков.<br />
*'''Аниматор последних очков''' - машина со счетчиком (подобъектом), которая запускается в месте попадания шарика. Должна иметь состояние ''show''.<br />
*'''Тип подсчета''' - очки могут считаться как: 1) количество сматченных шариков * на kBub; 2) сумма порядковых номеров (сматчили 4 шарика -> очки = 1+2+3+4)<br />
*'''kBub''' - коэффициент за сматченные шарики.<br />
*'''kCmb''' - коэффициент за комбо.<br />
*'''kMov''' - коэффициент за оставшиеся ходы.<br />
*'''kTim''' - коэффициент за оставшиеся секунды.<br />
*'''kPst''' - коэффициент за удаленные с поля вредители.<br />
*'''kSnw''' - коэффициент за удаленные с поля снежинки.<br />
<br />
<br />
= Состояния =<br />
*'''pause''' - перевести объект в паузу; <br />
*'''resume''' - вытащить объект из паузы;<br />
*'''hint''' - выполнить хинт ( нужно в поле hntt указать номер хинта);<br />
*'''gover''' - <br />
*'''game_continue''' - продолжить игру (например, в случае, когда мы проиграли, но даем игроку шанс, убрав несколько нижних линий);<br />
*'''game_lose''' - задекларировать проигрыш (например, когда мы проиграли, и игрок отказался от шанса продолжить игру);<br />
*'''cur_on''' - отображать траекторию при прицеливании;<br />
*'''cur_off''' - убрать траекторию при прицеливании;<br />
*'''fbubswap''' - поменять местами шарики в пушке;<br />
*'''del_bottom''' - удалить несколько (задается параметром) нижних рядов;<br />
*'''effdigsc2''' - <br />
*'''update_params''' - обновить параметры объекта(пока только номер фрейма клипа шариков);<br />
*'''reset_game''' - сбросит игру , которая сохранена в опциях;<br />
*'''send_stat''' - отправить статистику.<br />
<br />
<br />
<br />
<br />
=Добавляемые параметры=<br />
<br />
===[[Файл:+.png]] Графический ресурс===<br />
*'''Клип''' - Графический ресурс, перетаскивается из редактора ресурсов.<br />
*'''Номер цвета''' - Номер цвета, который будет соответствовать значению цвета в файле-уровня.<br />
<br />
<br />
===[[Файл:+.png]] Ресурсы функциональных шариков===<br />
[[Файл:03-02-2014 10-35-45.png|200px|thumb|right]]<br />
*'''Функционал''' - Записываем значение чудо-шарика из файла-настроек.<br />
*'''Клип''' - Графический ресурс шариков, обладающих данным функционалом.<br />
*'''Звук''' - Звук шарика, обладающего данным функционалом.<br />
*'''Эффект''' - Машина/Патикл обладающие состоянием beg.<br />
<br />
<br />
===[[Файл:+.png]] Параметры анимации для шарика лунка===<br />
*'''Время перемещения''' - время движения шарика в центр лунки.<br />
*'''Время исчезновения''' - время исчезновения шарика в лунке (скейл).<br />
*'''Время жизни''' - время жизни эффекта.<br />
<br />
<br />
===[[Файл:+.png]] Параметры анимации для шарика колючка===<br />
*'''Время жизни''' - время жизни эффекта.<br />
<br />
<br />
===[[Файл:+.png]] Параметры анимации для шарика снежинка===<br />
*'''Время жизни''' - время жизни эффекта.<br />
<br />
<br />
===[[Файл:+.png]] Параметры анимации для шарика вредитель===<br />
*'''Время жизни''' - время жизни эффекта.<br />
*'''Время ожидания скина''' - время, пока поменяется скин шарика.<br />
*'''Эффект''' - эффект, возникающий в момент обрастания вредителя снежинками.<br />
<br />
<br />
===[[Файл:+.png]] Физика===<br />
[[Файл:02-01-2014 13-57-15.png|250px|thumb|right]]<br />
*'''Справа находится пример настроек физики для шариков радиусом 24.'''<br />
*'''Move''' - Коэффициент отталкивания летящего шарика.<br />
*'''MinDest2''' - Квадрат минимального расстояния, когда шарик считается в покое.<br />
*'''MinVel2''' - Квадрат минимальной скорости, когда шарик считается в покое.<br />
*'''Down''' - Трение.<br />
*'''MaxVel''' - Максимальная скорость колебаний.<br />
*'''Elast''' - Эластичность с-мы (коэффициент для сил действующих между соседними шариками).<br />
*'''Glue''' - Коэффициент притяжения шарика к центру ячейки.<br />
*'''MoveC''' - Радиус действия летящего шарика в ячейках.<br />
*'''BangVel''' - Приращение для скорости взрыва.<br />
<br />
<br />
===[[Файл:+.png]] Уровень сложности===<br />
''Название параметров говорит само за себя. Создавать их можно бесконечное множество, главное не забывать назначать им порядковые номера в поле "уровень" по мере добавления новых уровней. Количество уровней сложности внутри объекта должно соответствовать количеству уровней сложности у необходимого Вам монстра. Количество цветов заданное в файле-настройках .xml имеет приоритет над теми, что мы задаем в объекте.''<br />
*'''Уровень''' - номер уровня.<br />
*'''Кол-во цветов''' - число цветов на поле.<br />
*'''Шаги до наезда''' - число шагов до наезда.<br />
*'''Бомба мина: вероятность''' - вероятность появления мины в процентах.<br />
*'''Бомба мина: радиус''' - радиус мины в шариках.<br />
*'''Бомба ядро:вероятность''' - вероятность появления ядра в процентах.<br />
*'''Бомба ядро: число отскоков от стен''' - число отскоков ядра от стен поля.<br />
*'''Бомба цвет: количество''' - число бомб-цвет, которые появятся на уровне.<br />
*'''Бомба цвет: шаги''' - число шагов вначале уровня до появления бомбы-цвет.<br />
<br />
<br />
===[[Файл:+.png]] Визуализатор общих очков===<br />
*'''Объект''' - счетчик, прогресс, показывающий сумму очков за уровень.<br />
<br />
<br />
===[[Файл:+.png]] Игра выиграна: изменить состояние объекта===<br />
*'''Объект''' - объект, состояние которого меняем при выигрыше.<br />
*'''Состояние''' - новое состояние объекта.<br />
<br />
<br />
===[[Файл:+.png]] Игра выиграна: изменить параметр объекта===<br />
*'''Объект''' - объект, параметр которого меняем при выигрыше.<br />
*'''Параметр''' - параметр, который меняем.<br />
*'''Значение''' - новое значение параметра.<br />
<br />
<br />
===[[Файл:+.png]] Игра проиграна: изменить состояние объекта===<br />
*'''Объект''' - объект, состояние которого меняем при проигрыше.<br />
*'''Состояние''' - новое состояние объекта.<br />
<br />
===[[Файл:+.png]] Игра проиграна: изменить параметр объекта===<br />
*'''Объект''' - объект, параметр которого меняем при проигрыше.<br />
*'''Параметр''' - параметр, который меняем.<br />
*'''Значение''' - новое значение параметра.<br />
<br />
<br />
===[[Файл:+.png]] Выбили цвет: изменить состояние объекта===<br />
*'''Объект''' - объект, состояние которого меняем при удалении цвета с поля. При этом BSh передает указанному объекту параметр ''param_removed_colors'' со значением количества выбитых цветов за данный ход.<br />
*'''Состояние''' - новое состояние объекта.<br />
<br />
<br />
=Хинты=<br />
*'''Замена шарика''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=0, после чего передать состояние hint.<br />
*'''Удаление цвета''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=5, после чего передать состояние hint.<br />
*'''Ядро''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=3, после чего передать состояние hint.<br />
*'''Мина''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=1, после чего передать состояние hint.<br />
*'''Курсор''' - Для того, чтоб вызвать этот хинт необходимо сделать следующие манипуляции: Вызвать объекту BubbleShooter параметр hntt=0, после чего передать состояние cur_on. После выстрела курсор исчезает.<br />
<br />
<br />
=Пример проекта=<br />
S:\!MOBILE\!!!EditorGames\Wiki_sample\bubble_snooker_graphprogress.zip<br />
<br />
<br />
=Пример реализации: задание уровня=<br />
<br />
::'''1)''' Если нам необходимо задать уровень шутеру прямиком из экрана где он находиться, и при этом он уже запустился (прорисовалась графика). То с начало мы должны передать ему состояние end, после чего задать необходимый уровень и переинитить сцену на которой он находиться (желательно чтобы на этой сцене был только шутер):<br />
<br />
[[Файл:Bubble change level.png|centre]]<br />
<br />
<br />
::'''2)''' Если же, мы задаем нужный уровень удалённо ( с другого экрана), то мы расшариваем экран с самим шутером на сцену где будем задавать ему новый уровень. И на том экране (удалённом) задаём шутеру нужный уровень (levelNum). <br />
<br />
[[Category:Game mechanic]]</div>Iskorobog