Memory — различия между версиями
Aslav (обсуждение | вклад) м |
Vefimov (обсуждение | вклад) (Восстановление) |
||
Строка 1: | Строка 1: | ||
{{TOC right}} | {{TOC right}} | ||
− | + | Memory - объект редактора, который реализует игровую механику "memory" - поиск одинаковых объектов. Имеет основные параметры [[Object|объекта]], но в memory нельзя помещать другие объекты - они при этом некорректно работают. | |
− | [[Object| | + | |
− | |||
=='''Основные свойства:'''== | =='''Основные свойства:'''== | ||
− | + | ||
− | [[Файл: | + | [[Файл:Memory1.png]] |
− | + | ===Размер поля=== | |
− | + | *''Строки'' '''(rows)''' - число ячеек по вертикали. | |
− | + | *''Столбцы'' '''(cols)''' - число ячеек по горизонтали. | |
− | === | + | |
− | + | ==='''Звуки'''=== | |
− | + | *''Удачный клик'' '''(sndClick)''' - клик на закрытую нерешенную ячейку. | |
− | + | *''Неудачный клик'' '''(sndMissClick)''' - неудачный клик (картинка решенная или анимируется). | |
− | + | *''Разбор узла'' '''(sndNode)''' - разобрали узел. | |
− | * | + | *''Удачный разбор игры'' '''(sndWinGame)''' - удачный разбор игры. |
− | + | *''Неудачный разбор игры'' '''(sndLoseGame)''' - неудачный разбор игры. | |
− | + | ||
− | + | ===Дополнительные настройки=== | |
− | + | *''Отступ(x)'' '''(indentX)''' - отступ между картинками по горизонтали. | |
− | + | *''Отступ (y)'' '''(indentY)''' - отступ между картинками по вертикали. | |
− | + | *''Время открытия'' '''(tmOpening)''' - время открытия картинки. | |
− | + | *''Время закрытия'' '''(tmClosing)''' - время закрытия картинки. | |
− | + | *''Анимация картинок'' '''(animType)''' тип анимирования картинок: | |
− | + | ** скалирование=0, | |
− | + | ** переворот по горизонтали=1, | |
− | + | ** переворот по вертикали=2, | |
− | =='''Звуки' | + | ** проявление по альфе=3. |
− | + | ** подлет=4 | |
− | + | ||
− | ''Удачный клик'' '''sndClick''' клик на закрытую нерешенную ячейку. | + | ==='''Файл уровней'''=== |
− | + | *''Имя файла'' '''(lvlfile)''' - Файл-описание уровня. | |
− | + | *''Номер уровня'' '''(lvlnum)''' - Номер уровня в файле. | |
− | ''Неудачный клик'' '''sndMissClick''' неудачный клик (картинка решенная или анимируется). | + | |
− | + | ==='''Параметры колебаний'''=== | |
− | + | *''Амплитуда'' '''(osc_a)''' - начальная амплитуда. | |
− | ''Разбор узла'' '''sndNode''' разобрали узел. | + | *''Время'' '''(osc_time)''' - время колебания ячейки после открытия. |
− | + | *''Количество'' '''(osc_num)''' - количество колебаний. | |
− | + | *''Затухание'' '''(osc_beta)''', параметр beta уравнения x(t) = a0 * exp(-beta * t) * cos(omega * t + alpha) - чем больше, тем быстрее уменьшается амплитуда колебаний. | |
− | ''Удачный разбор игры'' '''sndWinGame''' удачный разбор игры. | + | |
− | + | ==='''Параметры подлета'''=== | |
− | + | Параметры анимации картинок "подлет". | |
− | ''Неудачный разбор игры'' '''sndLoseGame''' неудачный разбор игры. | + | *''Время подлета'' '''(takeoff_tm)''' |
− | + | *''Скейл подлета'' '''(takeoff_sc)''' | |
− | ==Дополнительные настройки | + | *''Время переворота'' '''(revolution_tm)''' |
− | + | *''Количество переворотов'' '''(revolution_num)''' | |
− | ''Отступ(x)'' '''indentX''' отступ между картинками по горизонтали. | + | *''Скейл дальней стороны'' '''(far_side_sc)''' |
− | + | ||
− | + | ==='''Параметры хинта'''=== | |
− | '' | + | *''Время открытия'' '''(hint_open)''' - время открытия картинки. |
− | + | *''Время закрытия'' '''(hint_close)''' - время закрытия картинки. | |
− | + | *''Время показа'' '''(hint_show)''' - время показа пары картинок. | |
− | ''Время открытия'' | + | *''Пауза между анимациями'' '''(hint_dif)''' - пауза между началом анимирования первой и второй картинки. |
− | + | ||
− | + | ==='''Режим игры'''=== | |
− | ' | + | *''Режим'' '''(mod)''': |
− | + | **normal | |
− | + | **blitz - сыграть за определенное время | |
− | ''Анимация картинок'' '''animType''' тип анимирования картинок: | + | **moves - сыграть за определенное количество ходов. |
− | * скалирование=0, | + | |
− | * переворот по горизонтали=1, | + | *''Время (в блице)'' '''(modtm)''' - время игры в режиме blitz |
− | * переворот по вертикали=2, | + | *''Кол-во ходов'' '''(modmv)''' - количество ходов для режима moves. |
− | * проявление по альфе=3. | + | *''Визуализатор'' '''(modvis)''' - объект, который отображает текущее значение времени/ходов (timer/progres). |
− | + | ||
− | ==''' | + | ===Дополнительные настройки === |
− | ''' | + | |
− | + | *''Поведение решенного узла'' '''(snb)''': | |
− | + | ** оставлять картинки=0, | |
− | '' | + | ** убирать с поля вместе с бекграундом=1, |
− | + | ** устанавливать на их месте новые бекграунды=2. | |
− | ==='' | + | |
− | '' | + | *''Начальная задержка'' '''(tmOpen)''' - начальная задержка перед стартом игры. |
− | + | *''Тип игры'' '''(memoType)''': | |
− | + | ** классическая=0, | |
− | ''Количество'' | + | ** найти свои=1, |
− | + | ** copy=2. | |
− | + | *''Флайер'' '''(flyer)''' - флайер при разборе узла. Нужен в двух экземплярах. | |
− | ' | + | |
− | + | ==='''Препоказ'''=== | |
− | =='''Параметры | + | *''Нужен/не нужен'' '''(preShowNeeded)''' - включить/выключить препоказ картинок при старте игры. |
− | ''' | + | *''Время открытия'' '''(preShowOpenTm)''' - время открытия препоказа. |
− | + | *''Продолжительность'' '''(preShowTm)''' - продолжительность препоказа. | |
− | + | *''Время закрытия'' '''(preShowCloseTm)''' - время закрытия препоказа. | |
− | '' | + | |
− | |||
− | ==='' | ||
− | ''Время | ||
− | |||
− | |||
− | ''Время показа'' | ||
− | |||
− | |||
− | ' | ||
− | |||
− | == | ||
− | |||
− | |||
− | ''Поведение решенного узла'' '''snb''' | ||
− | * оставлять картинки=0, | ||
− | * убирать с поля вместе с бекграундом=1, | ||
− | * устанавливать на их месте новые бекграунды=2. | ||
− | |||
− | |||
− | ''Начальная задержка'' | ||
− | |||
− | |||
− | ''Тип игры'' '''memoType''' | ||
− | * классическая=0, | ||
− | * найти свои=1, | ||
− | * copy=2. | ||
− | |||
− | |||
− | ''Флайер'' '''flyer''' | ||
− | |||
− | = | ||
− | '''Препоказ' | ||
− | |||
− | |||
− | ''Нужен/не нужен'' | ||
− | * | ||
− | |||
− | |||
− | |||
− | '' | ||
− | |||
− | |||
− | '' | ||
− | |||
− | |||
− | '' | ||
− | |||
− | |||
=='''Дополнительные параметры:'''== | =='''Дополнительные параметры:'''== | ||
− | + | ||
+ | [[Файл:Memoryadd.png]] | ||
− | + | ==='''Игрок'''=== | |
+ | '''Важно!''' Должен быть как минимум один игрок. | ||
+ | *''Игрок'' '''(player)''' - нужен/ненужен. | ||
+ | *''Тип'' '''(pltype)''' - тип игрока: человек/компьютер. | ||
+ | *''Ключ'' '''(key)''' - ключ игрока. | ||
+ | *''Имя'' '''(name)''' - имя игрока | ||
+ | *''Счетчик'' '''(counter)''' - счетчик ходов. | ||
+ | *''Индикатор'' '''(indicator)''' - индикатор хода игрока(машина) | ||
+ | *''Вероятность'' '''(probability)''' - вероятность правильного хода (для компьютера). | ||
+ | *''Память'' "3" '''(plmemo)''' сколько ходов помнит компьютер. | ||
+ | *''Время на ход'' '''(pltime)''' время на ход (для компьютера). | ||
+ | |||
+ | ==='''Бонус'''=== | ||
+ | *''Нужен'' '''(need)''' - нужен/ненужен. | ||
+ | *''Ключ'' '''(key)''' - название бонуса. | ||
+ | *''Графика'' '''(bonusImgs)''' - клип с графикой для бонусной карты. | ||
+ | *''Картинка'' '''(bonusFrame)'' - номер фрейма в клипе, если хотим брать случайно, то -1 | ||
+ | *''Тип бонуса'' '''(bonusType)''': | ||
+ | **открыть дополнительную карту=1 | ||
+ | **добавить ход=2 | ||
+ | |||
+ | ==='''Удачный разбор: изменить состояние объекта'''=== | ||
+ | * объект '''(obj)''' объект, состояние которого нужно изменить. | ||
+ | * состояние '''(st)''' новое состояние объекта. | ||
− | =='' | + | ==='''Удачный разбор: изменить свойство объекта '''=== |
− | ==='' | + | * объект '''(obj)''' - объект, свойство которого нужно изменить. |
− | '' | + | * свойство '''(par)''' - свойство, которое нужно изменить. |
− | ==='' | + | * значение '''(val)''' Значение Новое значение свойства. |
− | '' | + | |
− | * | + | ==='''Неудачный разбор: изменить состояние объекта '''=== |
− | * | + | * объект '''(obj)''' Объект Объект, состояние которого нужно изменить. |
+ | * состояние '''(st)''' Состояние Новое состояние объекта. | ||
+ | |||
+ | ==='''Неудачный разбор: изменить свойство объекта'''=== | ||
+ | * объект '''(obj)''' - объект, свойство которого нужно изменить. | ||
+ | * свойство '''(par)''' - свойство, которое нужно изменить. | ||
+ | * значение '''(val)''' - новое значение свойства. | ||
− | + | Дополнительные параметры для разных типов игры: | |
− | + | [[Файл:Memo3.png]] | |
− | |||
− | |||
− | ==='' | + | ==='''memoClassic параметры'''=== |
− | '' | + | Цель игры - разобрать поле, убирая одинаковые картинки. |
+ | *''Подтип'' '''(subType)''' подтип игры: | ||
+ | ** картинка-картинка - найти пары одинаковых картинок. | ||
+ | ** картинка-ключ - найти пары ассоциативных картинок. | ||
+ | *''Сложность'' '''(level)''': | ||
+ | ** легкая | ||
+ | ** сложная - наличие картинок, которые труднее запомнить (белая/черная кошки). | ||
+ | *''Повторения'' '''(duplication)''' повторения пар картинок: | ||
+ | ** запрещены | ||
+ | ** разрешены | ||
+ | *''Подложки'' '''(bg)''' - анимация с картинками для подложек. | ||
+ | *''Легкие картинки'' '''(pict0)''' - анимация с картинками для легкого уровня сложности. | ||
+ | *''Сложные картинки'' '''(pict1)''' - анимация с картинками для сложного уровня сложности. | ||
+ | *''Ключи'' '''(pictKey)''' - анимация с картинками для ключей (для подтипа картинка-ключ). | ||
+ | |||
+ | ==='''memoFindOwn параметры''' === | ||
+ | Цель игры - первым разобрать свои картинки. | ||
− | ==='' | + | *''Подложки'' '''(bg)''' - клип с картинками для подложек. |
− | '' | + | *''Нейтральные картинки'' '''(pictNeutral)''' - клип для нейтральных картинок. |
+ | *''Картинки игроков'' '''(pict)''' - клип для активных картинок. | ||
+ | *''Очки за свои ячейки'' '''(scoreOwn)''' - очки за клик на свою картинку. | ||
+ | *''Очки за чужие ячейки'' '''(scoreOther)''' - очки за клик на чужую картинку(можно указывать отрицательное значения). | ||
+ | *''Очки за нейтральные ячейки'' '''(scoreNeutral)''' - очки за клик на нейтральную картинку. | ||
+ | *''Мультипликатор'' '''(scoreMultiplier)''' - за первую правильно открытую ячейку 1Х очков, за вторую - 2Х и т.д.: | ||
+ | ** нет=0, | ||
+ | ** да=1. | ||
+ | *''Ячейки игроков'' '''(targetNum)''' - количество ячеек для каждого игрока. | ||
+ | |||
+ | ==='''memoCopy параметры'''=== | ||
+ | Цель игры - раскопировать изображение правильных фишек. | ||
+ | *''Обычные картинки'' '''(imgs0)''' | ||
+ | *''Верно нажатые'' '''(imgs1)''' | ||
+ | *''Неверно нажатые'' '''(imgs2)''' | ||
+ | *''Подложки'' '''(bgs)''' | ||
+ | *''id для картинок'' '''(imgId)''' | ||
+ | *''id для подложек'' '''(bgId)''' | ||
+ | *''Пауза перед закрытием'' '''(endLevelPause)''' | ||
+ | *''Итерации'' '''(numIters)''' | ||
+ | *''Массив строк'' '''(rowsArray)''' | ||
+ | *''Массив столбцов'' '''(colsArray)''' | ||
+ | *''Пустые ячейки'' '''emptyArray''' | ||
− | == | + | =='''Файл уровней'''== |
− | + | Можно сделать макет уровней игры, и с помощью машины передавать memory параметр lvlnum, тем самым меняя играемый уровень. Данный параметр нужно передавать до перехода на экран с игрой. | |
− | + | Уровень можно формировать 2 способами: | |
− | + | * на основе постоянной прямоугольной решетки, при этом есть возможность задавать в решетке ячейки без плиток memory; | |
+ | * произвольным размещением плиток на сцене - путем задачи координат каждой плитки относительно объекта memory. | ||
− | + | '''Важно! При формировании уровня нужно следить, что бы количество игровых ячеек было парным''' | |
− | '' | ||
− | ==='' | + | ==='''Структура уровня'''=== |
− | |||
− | + | <level> | |
− | + | id - номер уровня | |
− | + | rows - высота сетки | |
− | + | cols - ширина сетки | |
− | + | time - время игры | |
− | + | turns - количество ходов | |
− | + | frames - количество картинок, из которых формируется поле | |
− | + | dup - если 1, разрешены повторения пар. Если 0, повторений будет минимально возможное количество. | |
− | + | clipBgs - id клипа с подложками // значения клипов переносятся вручную | |
− | + | clipImgs - id клипа с картинками для матча // представляет собой id анимации | |
− | + | clipKeys - id клипа с ключами для матче (в режиме картинка-ключ) // которая содержат нужные картинки | |
− | + | ||
− | + | <rules> | |
− | + | Описание правил для параметра "rules_preset" | |
− | + | <rule> | |
− | + | id - сложность | |
− | + | остальной список параметров такой же | |
− | + | </rule> | |
− | + | ... | |
− | + | </rules> | |
− | + | <fakes> - ложные ячейки - ведут себя как и обычные ячейки, но ни с кем не матчатся | |
− | + | <fake> | |
− | + | pos - позиция, она же номер в последовательности, описывающей поле | |
− | + | frame - номер фрейма (должен быть в общей анимации) | |
− | + | </fake> | |
− | + | </fakes> | |
− | + | <field> - прямоугольная решетка | |
− | + | Описание ячеек поля {0,1} | |
− | + | </field> | |
− | + | <field_pos> | |
− | + | Описание ячеек поля координатами (x0,y0),(x1,y1),... | |
− | + | Переносы строк, пробелы и прочие табы разрешаются | |
− | + | </field_pos> | |
− | + | </level> | |
− | + | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | ==='' | + | ====''Постоянная решетка''==== |
− | |||
− | === | + | <level id="0" rows="5" cols="6" time="60000" turns="6" frames="3" dup="0" clipBgs="231" clipImgs="232" clipKeys="232"> |
− | + | <rules> | |
+ | <rule id="0" rows="4" cols="3" time="0" turns="6" frames="1" dup="0" clipBgs="231" clipImgs="232" clipKeys="232" /> | ||
+ | </rules> | ||
+ | <field_pos> | ||
+ | </field_pos> | ||
+ | <field> // где 0 - ячейка пустая | ||
+ | 1,1,0,1,1,1, | ||
+ | 1,1,1,1,1,1, | ||
+ | 1,1,0,1,1,1, | ||
+ | 1,1,1,0,1,1, | ||
+ | 1,1,1,1,1,0 | ||
+ | </field> | ||
+ | </level> | ||
− | |||
− | |||
− | ==='' | + | ====''Задание координат''==== |
− | |||
− | === | + | <level id="1" rows="5" cols="6" time="60000" turns="6" frames="3" dup="0" clipBgs="231" clipImgs="232" clipKeys="232"> |
− | + | <rules> | |
+ | <rule id="0" rows="4" cols="3" time="0" turns="6" frames="1" dup="0" clipBgs="231" clipImgs="232" clipKeys="232" /> | ||
+ | </rules> | ||
+ | <fakes> // Нумерация ячеек начинается с верхней левой. Каждая фейковая ячейка уменьшает | ||
+ | <fake pos="4" frame="1" /> // количество обычных ячеек. Поэтому нужно следить, что бы количество обычных | ||
+ | <fake pos="12" frame="2" /> // ячеек всегда было парным. | ||
+ | <fake pos="0" frame="0" /> | ||
+ | </fakes> | ||
+ | <field_pos> //координаты отсчитываются от точки пивота объекта memory | ||
+ | (0,-250), | ||
+ | (-50,-150),(50,-150), | ||
+ | (-100,-50),(0,-50),(100,-50), | ||
+ | (-150,50),(-50,50),(50,50),(150,50), | ||
+ | (-200,150),(-100,150),(0,150),(100,150),(200,150) | ||
+ | </field_pos> | ||
+ | </level> | ||
− | === | + | ==Хинты== |
− | |||
− | === | + | У memory есть 3 вида хинтов: |
− | + | * показать пару ячеек - hntt=0 | |
+ | * показать все ячейки - hntt=1 | ||
+ | * убрать пару ячеек - hntt=2 | ||
− | + | Для активации хинта нужно передать memory соответствующее значение hntt и передать состояние hint. | |
+ | Также для memory определено состояние skip, при передаче которого игра завершается победой. | ||
− | |||
− | |||
− | |||
== Пример == | == Пример == | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | S:\!MOBILE\!!!EditorGames\Wiki_sample Файл: memory_sample.zip | |
[[Category:Game mechanic]] | [[Category:Game mechanic]] |
Версия 07:23, 26 февраля 2015
Memory - объект редактора, который реализует игровую механику "memory" - поиск одинаковых объектов. Имеет основные параметры объекта, но в memory нельзя помещать другие объекты - они при этом некорректно работают.
Основные свойства:
Размер поля
- Строки (rows) - число ячеек по вертикали.
- Столбцы (cols) - число ячеек по горизонтали.
Звуки
- Удачный клик (sndClick) - клик на закрытую нерешенную ячейку.
- Неудачный клик (sndMissClick) - неудачный клик (картинка решенная или анимируется).
- Разбор узла (sndNode) - разобрали узел.
- Удачный разбор игры (sndWinGame) - удачный разбор игры.
- Неудачный разбор игры (sndLoseGame) - неудачный разбор игры.
Дополнительные настройки
- Отступ(x) (indentX) - отступ между картинками по горизонтали.
- Отступ (y) (indentY) - отступ между картинками по вертикали.
- Время открытия (tmOpening) - время открытия картинки.
- Время закрытия (tmClosing) - время закрытия картинки.
- Анимация картинок (animType) тип анимирования картинок:
- скалирование=0,
- переворот по горизонтали=1,
- переворот по вертикали=2,
- проявление по альфе=3.
- подлет=4
Файл уровней
- Имя файла (lvlfile) - Файл-описание уровня.
- Номер уровня (lvlnum) - Номер уровня в файле.
Параметры колебаний
- Амплитуда (osc_a) - начальная амплитуда.
- Время (osc_time) - время колебания ячейки после открытия.
- Количество (osc_num) - количество колебаний.
- Затухание (osc_beta), параметр beta уравнения x(t) = a0 * exp(-beta * t) * cos(omega * t + alpha) - чем больше, тем быстрее уменьшается амплитуда колебаний.
Параметры подлета
Параметры анимации картинок "подлет".
- Время подлета (takeoff_tm)
- Скейл подлета (takeoff_sc)
- Время переворота (revolution_tm)
- Количество переворотов (revolution_num)
- Скейл дальней стороны (far_side_sc)
Параметры хинта
- Время открытия (hint_open) - время открытия картинки.
- Время закрытия (hint_close) - время закрытия картинки.
- Время показа (hint_show) - время показа пары картинок.
- Пауза между анимациями (hint_dif) - пауза между началом анимирования первой и второй картинки.
Режим игры
- Режим (mod):
- normal
- blitz - сыграть за определенное время
- moves - сыграть за определенное количество ходов.
- Время (в блице) (modtm) - время игры в режиме blitz
- Кол-во ходов (modmv) - количество ходов для режима moves.
- Визуализатор (modvis) - объект, который отображает текущее значение времени/ходов (timer/progres).
Дополнительные настройки
- Поведение решенного узла (snb):
- оставлять картинки=0,
- убирать с поля вместе с бекграундом=1,
- устанавливать на их месте новые бекграунды=2.
- Начальная задержка (tmOpen) - начальная задержка перед стартом игры.
- Тип игры (memoType):
- классическая=0,
- найти свои=1,
- copy=2.
- Флайер (flyer) - флайер при разборе узла. Нужен в двух экземплярах.
Препоказ
- Нужен/не нужен (preShowNeeded) - включить/выключить препоказ картинок при старте игры.
- Время открытия (preShowOpenTm) - время открытия препоказа.
- Продолжительность (preShowTm) - продолжительность препоказа.
- Время закрытия (preShowCloseTm) - время закрытия препоказа.
Дополнительные параметры:
Игрок
Важно! Должен быть как минимум один игрок.
- Игрок (player) - нужен/ненужен.
- Тип (pltype) - тип игрока: человек/компьютер.
- Ключ (key) - ключ игрока.
- Имя (name) - имя игрока
- Счетчик (counter) - счетчик ходов.
- Индикатор (indicator) - индикатор хода игрока(машина)
- Вероятность (probability) - вероятность правильного хода (для компьютера).
- Память "3" (plmemo) сколько ходов помнит компьютер.
- Время на ход (pltime) время на ход (для компьютера).
Бонус
- Нужен (need) - нужен/ненужен.
- Ключ (key) - название бонуса.
- Графика (bonusImgs) - клип с графикой для бонусной карты.
- Картинка '(bonusFrame) - номер фрейма в клипе, если хотим брать случайно, то -1
- Тип бонуса (bonusType):
- открыть дополнительную карту=1
- добавить ход=2
Удачный разбор: изменить состояние объекта
- объект (obj) объект, состояние которого нужно изменить.
- состояние (st) новое состояние объекта.
Удачный разбор: изменить свойство объекта
- объект (obj) - объект, свойство которого нужно изменить.
- свойство (par) - свойство, которое нужно изменить.
- значение (val) Значение Новое значение свойства.
Неудачный разбор: изменить состояние объекта
- объект (obj) Объект Объект, состояние которого нужно изменить.
- состояние (st) Состояние Новое состояние объекта.
Неудачный разбор: изменить свойство объекта
- объект (obj) - объект, свойство которого нужно изменить.
- свойство (par) - свойство, которое нужно изменить.
- значение (val) - новое значение свойства.
Дополнительные параметры для разных типов игры:
memoClassic параметры
Цель игры - разобрать поле, убирая одинаковые картинки.
- Подтип (subType) подтип игры:
- картинка-картинка - найти пары одинаковых картинок.
- картинка-ключ - найти пары ассоциативных картинок.
- Сложность (level):
- легкая
- сложная - наличие картинок, которые труднее запомнить (белая/черная кошки).
- Повторения (duplication) повторения пар картинок:
- запрещены
- разрешены
- Подложки (bg) - анимация с картинками для подложек.
- Легкие картинки (pict0) - анимация с картинками для легкого уровня сложности.
- Сложные картинки (pict1) - анимация с картинками для сложного уровня сложности.
- Ключи (pictKey) - анимация с картинками для ключей (для подтипа картинка-ключ).
memoFindOwn параметры
Цель игры - первым разобрать свои картинки.
- Подложки (bg) - клип с картинками для подложек.
- Нейтральные картинки (pictNeutral) - клип для нейтральных картинок.
- Картинки игроков (pict) - клип для активных картинок.
- Очки за свои ячейки (scoreOwn) - очки за клик на свою картинку.
- Очки за чужие ячейки (scoreOther) - очки за клик на чужую картинку(можно указывать отрицательное значения).
- Очки за нейтральные ячейки (scoreNeutral) - очки за клик на нейтральную картинку.
- Мультипликатор (scoreMultiplier) - за первую правильно открытую ячейку 1Х очков, за вторую - 2Х и т.д.:
- нет=0,
- да=1.
- Ячейки игроков (targetNum) - количество ячеек для каждого игрока.
memoCopy параметры
Цель игры - раскопировать изображение правильных фишек.
- Обычные картинки (imgs0)
- Верно нажатые (imgs1)
- Неверно нажатые (imgs2)
- Подложки (bgs)
- id для картинок (imgId)
- id для подложек (bgId)
- Пауза перед закрытием (endLevelPause)
- Итерации (numIters)
- Массив строк (rowsArray)
- Массив столбцов (colsArray)
- Пустые ячейки emptyArray
Файл уровней
Можно сделать макет уровней игры, и с помощью машины передавать memory параметр lvlnum, тем самым меняя играемый уровень. Данный параметр нужно передавать до перехода на экран с игрой.
Уровень можно формировать 2 способами:
- на основе постоянной прямоугольной решетки, при этом есть возможность задавать в решетке ячейки без плиток memory;
- произвольным размещением плиток на сцене - путем задачи координат каждой плитки относительно объекта memory.
Важно! При формировании уровня нужно следить, что бы количество игровых ячеек было парным
Структура уровня
<level> id - номер уровня rows - высота сетки cols - ширина сетки time - время игры turns - количество ходов frames - количество картинок, из которых формируется поле dup - если 1, разрешены повторения пар. Если 0, повторений будет минимально возможное количество. clipBgs - id клипа с подложками // значения клипов переносятся вручную clipImgs - id клипа с картинками для матча // представляет собой id анимации clipKeys - id клипа с ключами для матче (в режиме картинка-ключ) // которая содержат нужные картинки <rules> Описание правил для параметра "rules_preset" <rule> id - сложность остальной список параметров такой же </rule> ... </rules> <fakes> - ложные ячейки - ведут себя как и обычные ячейки, но ни с кем не матчатся <fake> pos - позиция, она же номер в последовательности, описывающей поле frame - номер фрейма (должен быть в общей анимации) </fake> </fakes> <field> - прямоугольная решетка Описание ячеек поля {0,1} </field> <field_pos> Описание ячеек поля координатами (x0,y0),(x1,y1),... Переносы строк, пробелы и прочие табы разрешаются </field_pos> </level>
Постоянная решетка
<level id="0" rows="5" cols="6" time="60000" turns="6" frames="3" dup="0" clipBgs="231" clipImgs="232" clipKeys="232"> <rules> <rule id="0" rows="4" cols="3" time="0" turns="6" frames="1" dup="0" clipBgs="231" clipImgs="232" clipKeys="232" /> </rules> <field_pos> </field_pos> <field> // где 0 - ячейка пустая 1,1,0,1,1,1, 1,1,1,1,1,1, 1,1,0,1,1,1, 1,1,1,0,1,1, 1,1,1,1,1,0 </field> </level>
Задание координат
<level id="1" rows="5" cols="6" time="60000" turns="6" frames="3" dup="0" clipBgs="231" clipImgs="232" clipKeys="232"> <rules> <rule id="0" rows="4" cols="3" time="0" turns="6" frames="1" dup="0" clipBgs="231" clipImgs="232" clipKeys="232" /> </rules> <fakes> // Нумерация ячеек начинается с верхней левой. Каждая фейковая ячейка уменьшает <fake pos="4" frame="1" /> // количество обычных ячеек. Поэтому нужно следить, что бы количество обычных <fake pos="12" frame="2" /> // ячеек всегда было парным. <fake pos="0" frame="0" /> </fakes> <field_pos> //координаты отсчитываются от точки пивота объекта memory (0,-250), (-50,-150),(50,-150), (-100,-50),(0,-50),(100,-50), (-150,50),(-50,50),(50,50),(150,50), (-200,150),(-100,150),(0,150),(100,150),(200,150) </field_pos> </level>
Хинты
У memory есть 3 вида хинтов:
- показать пару ячеек - hntt=0
- показать все ячейки - hntt=1
- убрать пару ячеек - hntt=2
Для активации хинта нужно передать memory соответствующее значение hntt и передать состояние hint. Также для memory определено состояние skip, при передаче которого игра завершается победой.
Пример
S:\!MOBILE\!!!EditorGames\Wiki_sample Файл: memory_sample.zip