Tool — различия между версиями
Echornaya (обсуждение | вклад) (→Основные параметры) |
Agava (обсуждение | вклад) (→Описание для чего используется объект Tool) |
||
(не показаны 23 промежуточные версии 7 участников) | |||
Строка 1: | Строка 1: | ||
{{TOC right}} | {{TOC right}} | ||
− | Объект '''Tool''' - "применение" - объект, который можно применить для других игровых объектов. | + | [[Object|Объект]] '''Tool''' - "применение" - объект, который можно применить для других игровых объектов. |
== Описание для чего используется объект Tool== | == Описание для чего используется объект Tool== | ||
Строка 9: | Строка 9: | ||
Например: | Например: | ||
+ | |||
[[Файл:Tt.PNG|1000px]] | [[Файл:Tt.PNG|1000px]] | ||
Строка 18: | Строка 19: | ||
*'''память''' - Если 1, то при повторном открытии экрана объект не обновляет свое состояние (помнит текущие параметры, оставшиеся от предыдущего посещения экрана); | *'''память''' - Если 1, то при повторном открытии экрана объект не обновляет свое состояние (помнит текущие параметры, оставшиеся от предыдущего посещения экрана); | ||
*'''курсор''' - Графический ресурс курсора текущего и всех дочерних объектов. | *'''курсор''' - Графический ресурс курсора текущего и всех дочерних объектов. | ||
+ | *'''сохранение параметров''' - Сохранение параметров" regexp="нет=0, только объект=1, объект с подобъектами=2, только подобъекты=3. | ||
+ | *'''состояние''' - Начальное состояние инструмента. Если его нет будет установлено состояние add - по клику добавляться в инвентарь. | ||
[[Файл:Descr.JPG|thumb|400px|right|Пример подписи при drag]] | [[Файл:Descr.JPG|thumb|400px|right|Пример подписи при drag]] | ||
+ | |||
== Основные параметры == | == Основные параметры == | ||
[[Файл:Tool1.png|thumb|250px|right|Настройки подписи]] | [[Файл:Tool1.png|thumb|250px|right|Настройки подписи]] | ||
− | * '''Инвентарь''' - обязательно в свойствах должен быть указан инвентарь с которым связан объект, а с инвентарем — таблица, в ячейках которой хранятся объекты (см. свойства объекта Inventory) | + | * '''Инвентарь''' - обязательно в свойствах должен быть указан инвентарь с которым связан объект, а с инвентарем — таблица, в ячейках которой хранятся объекты (см. свойства объекта [[Inventory|Inventory]]) |
− | * '''Флаер''' - Флаер, который тул будет использовать для | + | * '''Флаер''' - Флаер, который тул будет использовать для подсветки при состоянии hint. |
− | * '''Приклеивать''' - | + | * '''Машина для полета в инвентарь''' - Машина для реализации кастомной анимации полета. Должна иметь состояния beg - начать полет, будет вызвано инвентарем и end - полет завершен, будет проверяться инвентарем. |
+ | * '''Приклеивать''' - "нет"- не приклеивать (по умолчанию), "если есть move" - приклеивать при клике к мышкой, "всегда" - разрешит ему приклеиваться, даже если отключено получение событий движения мыши при отпущенной кнопке (в app.icf должен быть прописан mouseOver=1). | ||
+ | * '''В центр при дропе''' - Ставить в центр при дропе. | ||
* '''Хранить масштаб''' - Сохранять масштаб при добавлении в инвентарь и восстанавливать после извлечения. | * '''Хранить масштаб''' - Сохранять масштаб при добавлении в инвентарь и восстанавливать после извлечения. | ||
* '''Подпись''' - Текстовый объект, который тул будет отображать при таскании. | * '''Подпись''' - Текстовый объект, который тул будет отображать при таскании. | ||
Строка 30: | Строка 36: | ||
* '''Время''' - Время видимости текстового хинта. 0 - хинт не исчезает. | * '''Время''' - Время видимости текстового хинта. 0 - хинт не исчезает. | ||
'''Группа - Положение подписи''' | '''Группа - Положение подписи''' | ||
− | *'''txt_x''' - Положение по оси х | + | *'''txt_x''' - Положение по оси х объекта с подписью. Отсчитывается от точки пивота тула. |
− | *'''txt_y''' - Положение по оси y | + | *'''txt_y''' - Положение по оси y объекта с подписью. Отсчитывается от точки пивота тула. |
− | Например: необходимо, чтобы при клике мышкой на объект Tool выводилось текстовое сообщение от этом объекте. Для этого необходимо сначала создать текстовый объект (см. рисунок - txt_ax) и текстовый | + | '''Группа - Статистика''' |
+ | *'''id_item''' - ID тула для статистики. | ||
+ | *'''событие на add''' - Имя события на добавления тула в инвентарь. | ||
+ | *'''add один раз''' - Посылать событие добавления предмета только один раз. | ||
+ | *'''событие на успешный дроп''' - Событие на успешный дроп. | ||
+ | *'''вкл. выкл. хинта кликом''' - да/нет - включить/выключить по клику на тул текстовую подпись. | ||
+ | |||
+ | Например: необходимо, чтобы при клике мышкой на объект Tool выводилось текстовое сообщение от этом объекте. Для этого необходимо сначала создать текстовый объект (см. рисунок - txt_ax) и текстовый id в базе ресурсов с текстом, открыть его в параметре "Подпись" (1), перетянуть текстовый id из базы ресурсов в параметр "Текст"(2) и указать время отображения и положение относительно точки пивота объекта Tool. | ||
== Добавляемые параметры == | == Добавляемые параметры == | ||
− | [[Файл:+.png]] '''Add''' - состояние объекта, в котором он по клику на него добавит себя в инвентарь. В этом | + | [[Файл:+.png]] '''Add''' - состояние объекта, в котором он по клику на него добавит себя в инвентарь. В этом состоянии можно изменить другой объект: |
− | * | + | * объект - При добавлении объекта в инвентарь перевести объект в состояние из следующего поля; |
− | * | + | * состояние - Новое состояние для объекта из предыдущего поля; |
+ | * свойство - Параметр, который мы изменяем; | ||
+ | * значение - Новое значение параметра. | ||
+ | |||
+ | [[Файл:Tool2.png|thumb|300px|right|Настройки подписи]] | ||
[[Файл:+.png]] '''Fail drop''' - неудачный дроп, т.е. объект Tool применили не к тому объекту. При этом можно можно изменить другой объект: | [[Файл:+.png]] '''Fail drop''' - неудачный дроп, т.е. объект Tool применили не к тому объекту. При этом можно можно изменить другой объект: | ||
− | * | + | * объект - При неудачном дропе объекта перевести объект в состояние из следующего поля; |
− | * | + | * состояние - Новое состояние для объекта из предыдущего поля; |
+ | * свойство - Параметр, который мы изменяем; | ||
+ | * значение - Новое значение параметра. | ||
[[Файл:+.png]]'''Drag'''- если на объект наступили мышкой, и не отпуская его, начали перемещать, то при наличии этой команды, объект "прилипнет" к мышке, и будет за ней таскаться. Параметры команды: | [[Файл:+.png]]'''Drag'''- если на объект наступили мышкой, и не отпуская его, начали перемещать, то при наличии этой команды, объект "прилипнет" к мышке, и будет за ней таскаться. Параметры команды: | ||
Строка 49: | Строка 68: | ||
* y1 - разрешено таскать, когда координата объекта ниже; | * y1 - разрешено таскать, когда координата объекта ниже; | ||
* y2 - разрешено таскать, когда координата объекта выше; | * y2 - разрешено таскать, когда координата объекта выше; | ||
− | * obj - | + | * obj -у какого объекта надо изменить состояние st (следующее поле); |
− | * st - | + | * st - на какое надо изменить состояние объекта obj (предыдущее поле); |
+ | * за пивот - таскать объект за пивот, 0 - за ту точку, за которую схватили. | ||
− | [[Файл:+.png]] '''Drop''' - если нажатая кнопка мышки отпускается, | + | [[Файл:+.png]] '''Drop''' - если нажатая кнопка мышки отпускается, вызывается эта команда, используется вместе с командой drop. |
Параметры команды: | Параметры команды: | ||
− | * obj - объект, на который надо уронить таскаемый | + | * obj - объект, на который надо уронить таскаемый; |
− | * obj2go -объект, | + | * obj2go - объект, который в результате дропа изменит состояние; |
− | * go — новое состояние объекта obj2go | + | * go — состояние в которое нужно перейти после окончания времени, т.е. новое состояние объекта obj2go; |
− | * del — если 1 — объект Tool удаляется из инвентаря сразу после применения на объект obj, если 0 - объект Tool не удаляется из инвентаря после применения на объект obj. | + | * свойство — параметр, который мы изменяем; |
− | : Примечание: Если Tool не удаляется после применения, то он остается лежать поверху объекта, на который был совершен дроп. Если Tool перетащить за пределы объекта, на который был дроп, то при отпускании Tool вернется в инвентарь. Чтобы после применения Tool самостоятельно вернулся в инвентарь, нужно передать объекту Tool состояние return | + | * значение — новое значение параметра; |
− | + | * del — если 1 — объект Tool удаляется из инвентаря сразу после применения на объект obj, т.е. при использовании объект сам себе установит состояние remove, если 0 - объект Tool не удаляется из инвентаря после применения на объект obj. | |
+ | : Примечание: Если Tool не удаляется после применения, то он остается лежать поверху объекта, на который был совершен дроп. Если Tool перетащить за пределы объекта, на который был дроп, то при отпускании Tool вернется в инвентарь. Чтобы после применения Tool самостоятельно вернулся в инвентарь, нужно передать объекту Tool состояние return или в поле del указать значение 1. Если в дальнейшем Tool нужно будет удалить, то его необходимо перевести в состояние remove. | ||
== Состояния объекта Tool == | == Состояния объекта Tool == | ||
Строка 67: | Строка 88: | ||
* '''idle''' - дефолтное состояние, объект на клики, драг, дроп не реагирует; | * '''idle''' - дефолтное состояние, объект на клики, драг, дроп не реагирует; | ||
* '''add''' - объект лежит, но по клику на него добавит себя в инвентарь; | * '''add''' - объект лежит, но по клику на него добавит себя в инвентарь; | ||
+ | * '''hint''' - подсветить себя. Если объект находится в таблице - то пролистает таблицу к этому объекту и подсветит его; | ||
* '''forced_add''' - объект добавляет себя в инвентарь (сразу по вызову состояния, безо всяких кликов), при этом срабатывает обработчик add, который может переводить различные объекты в другое состояние. | * '''forced_add''' - объект добавляет себя в инвентарь (сразу по вызову состояния, безо всяких кликов), при этом срабатывает обработчик add, который может переводить различные объекты в другое состояние. | ||
После любого из этих двух состояний объект переходит в состояние: | После любого из этих двух состояний объект переходит в состояние: | ||
* '''extract''' - объект лежит в инвентаре и ждет пока его вытащат; | * '''extract''' - объект лежит в инвентаре и ждет пока его вытащат; | ||
* '''return''' - объект возвращается в инвентарь, где бы он ни был; | * '''return''' - объект возвращается в инвентарь, где бы он ни был; | ||
− | * '''remove''' - объект удаляется из инвентаря навсегда. | + | * '''remove''' - объект удаляется из инвентаря навсегда, но при этом остается на сцене. |
+ | * '''delete''' - объект удаляется из инвентаря навсегда и при этом становится невидимым. | ||
== Пример использования объекта Tool == | == Пример использования объекта Tool == | ||
− | В | + | В данном примере используется объект Топор, который имеет тип Tool, со следующими параметрами. |
− | |||
− | |||
− | |||
− | + | [[Файл:Tool3.png|700px]] [[Файл:Tool8.png|300px]] | |
− | [[Файл: | ||
− | + | По клику на объект (Топор) - в машине ax_clone вызывается состояние off, где объект Tool (ах) переходит в состояние forced_add, т.е. добавляется в инвентарь. | |
− | |||
− | + | [[Файл:Tool4_1.jpg|500px]] [[Файл:Tool5.jpg|500px]] | |
− | 1) потащили Топор на Стул | + | Если мы вытаскиваем объект из инвентаря (т.е. выполняем Drag) и никуда не применяем (т.е. не выполняем команду Drop), объект автоматически возвращается в инвентарь. Когда объект (Топор) роняем на объект Стул (машина Maska_stul2), то объект Maska_stul2 принимает новое состояние: |
+ | 1) потащили Топор на Стул; | ||
+ | 2) вызвали новое состояние объекта Maska_stul2 (топор стал рубить стул). | ||
− | [[Файл: | + | [[Файл:Tool6.jpg|500px]] [[Файл:Tool7_1.jpg|500px]] |
− | |||
− | [[ | + | [[Category:Game mechanic]] |
Текущая версия на 15:54, 7 февраля 2019
Объект Tool - "применение" - объект, который можно применить для других игровых объектов.
Описание для чего используется объект Tool
Объект Tool — это игровой объект, который мы можем добавить в инвентарь, извлечь из инвентаря, применять на другие объекты, изменять им состояние, вернуть в инвентарь и удалить из инвентаря. При этом не требуется описание сложных машин, где задавались состояния для инвентаря: add (добавление в инвентарь), extract (извлечение из инвентаря и последующего его использования), return (возвращение в инвентарь), remove (удаление объекта и удаление из инвентаря). Объект Tool существует и имеет область применения в рамках всех существующих (или заданных) экранов.
Например:
Общие параметры
(см. описание Object)
- прокликиваемая - Если 1, то кнопка прозрачна для клика мышкой (пропускает объектам под ней). Если 2, то кнопка сама обрабатывает клик, но и пропускает его дальше;
- память - Если 1, то при повторном открытии экрана объект не обновляет свое состояние (помнит текущие параметры, оставшиеся от предыдущего посещения экрана);
- курсор - Графический ресурс курсора текущего и всех дочерних объектов.
- сохранение параметров - Сохранение параметров" regexp="нет=0, только объект=1, объект с подобъектами=2, только подобъекты=3.
- состояние - Начальное состояние инструмента. Если его нет будет установлено состояние add - по клику добавляться в инвентарь.
Основные параметры
- Инвентарь - обязательно в свойствах должен быть указан инвентарь с которым связан объект, а с инвентарем — таблица, в ячейках которой хранятся объекты (см. свойства объекта Inventory)
- Флаер - Флаер, который тул будет использовать для подсветки при состоянии hint.
- Машина для полета в инвентарь - Машина для реализации кастомной анимации полета. Должна иметь состояния beg - начать полет, будет вызвано инвентарем и end - полет завершен, будет проверяться инвентарем.
- Приклеивать - "нет"- не приклеивать (по умолчанию), "если есть move" - приклеивать при клике к мышкой, "всегда" - разрешит ему приклеиваться, даже если отключено получение событий движения мыши при отпущенной кнопке (в app.icf должен быть прописан mouseOver=1).
- В центр при дропе - Ставить в центр при дропе.
- Хранить масштаб - Сохранять масштаб при добавлении в инвентарь и восстанавливать после извлечения.
- Подпись - Текстовый объект, который тул будет отображать при таскании.
- Текст - Айди текстового ресурса, который будет отображаться при таскании.
- Время - Время видимости текстового хинта. 0 - хинт не исчезает.
Группа - Положение подписи
- txt_x - Положение по оси х объекта с подписью. Отсчитывается от точки пивота тула.
- txt_y - Положение по оси y объекта с подписью. Отсчитывается от точки пивота тула.
Группа - Статистика
- id_item - ID тула для статистики.
- событие на add - Имя события на добавления тула в инвентарь.
- add один раз - Посылать событие добавления предмета только один раз.
- событие на успешный дроп - Событие на успешный дроп.
- вкл. выкл. хинта кликом - да/нет - включить/выключить по клику на тул текстовую подпись.
Например: необходимо, чтобы при клике мышкой на объект Tool выводилось текстовое сообщение от этом объекте. Для этого необходимо сначала создать текстовый объект (см. рисунок - txt_ax) и текстовый id в базе ресурсов с текстом, открыть его в параметре "Подпись" (1), перетянуть текстовый id из базы ресурсов в параметр "Текст"(2) и указать время отображения и положение относительно точки пивота объекта Tool.
Добавляемые параметры
Add - состояние объекта, в котором он по клику на него добавит себя в инвентарь. В этом состоянии можно изменить другой объект:
- объект - При добавлении объекта в инвентарь перевести объект в состояние из следующего поля;
- состояние - Новое состояние для объекта из предыдущего поля;
- свойство - Параметр, который мы изменяем;
- значение - Новое значение параметра.
Fail drop - неудачный дроп, т.е. объект Tool применили не к тому объекту. При этом можно можно изменить другой объект:
- объект - При неудачном дропе объекта перевести объект в состояние из следующего поля;
- состояние - Новое состояние для объекта из предыдущего поля;
- свойство - Параметр, который мы изменяем;
- значение - Новое значение параметра.
Drag- если на объект наступили мышкой, и не отпуская его, начали перемещать, то при наличии этой команды, объект "прилипнет" к мышке, и будет за ней таскаться. Параметры команды:
- x1 - разрешено таскать, когда координата объекта правее;
- x2 - разрешено таскать, когда координата объекта левее;
- y1 - разрешено таскать, когда координата объекта ниже;
- y2 - разрешено таскать, когда координата объекта выше;
- obj -у какого объекта надо изменить состояние st (следующее поле);
- st - на какое надо изменить состояние объекта obj (предыдущее поле);
- за пивот - таскать объект за пивот, 0 - за ту точку, за которую схватили.
Drop - если нажатая кнопка мышки отпускается, вызывается эта команда, используется вместе с командой drop.
Параметры команды:
- obj - объект, на который надо уронить таскаемый;
- obj2go - объект, который в результате дропа изменит состояние;
- go — состояние в которое нужно перейти после окончания времени, т.е. новое состояние объекта obj2go;
- свойство — параметр, который мы изменяем;
- значение — новое значение параметра;
- del — если 1 — объект Tool удаляется из инвентаря сразу после применения на объект obj, т.е. при использовании объект сам себе установит состояние remove, если 0 - объект Tool не удаляется из инвентаря после применения на объект obj.
- Примечание: Если Tool не удаляется после применения, то он остается лежать поверху объекта, на который был совершен дроп. Если Tool перетащить за пределы объекта, на который был дроп, то при отпускании Tool вернется в инвентарь. Чтобы после применения Tool самостоятельно вернулся в инвентарь, нужно передать объекту Tool состояние return или в поле del указать значение 1. Если в дальнейшем Tool нужно будет удалить, то его необходимо перевести в состояние remove.
Состояния объекта Tool
У объекта Tool есть 6 состояний, которые можно задавать машиной:
- idle - дефолтное состояние, объект на клики, драг, дроп не реагирует;
- add - объект лежит, но по клику на него добавит себя в инвентарь;
- hint - подсветить себя. Если объект находится в таблице - то пролистает таблицу к этому объекту и подсветит его;
- forced_add - объект добавляет себя в инвентарь (сразу по вызову состояния, безо всяких кликов), при этом срабатывает обработчик add, который может переводить различные объекты в другое состояние.
После любого из этих двух состояний объект переходит в состояние:
- extract - объект лежит в инвентаре и ждет пока его вытащат;
- return - объект возвращается в инвентарь, где бы он ни был;
- remove - объект удаляется из инвентаря навсегда, но при этом остается на сцене.
- delete - объект удаляется из инвентаря навсегда и при этом становится невидимым.
Пример использования объекта Tool
В данном примере используется объект Топор, который имеет тип Tool, со следующими параметрами.
По клику на объект (Топор) - в машине ax_clone вызывается состояние off, где объект Tool (ах) переходит в состояние forced_add, т.е. добавляется в инвентарь.
Если мы вытаскиваем объект из инвентаря (т.е. выполняем Drag) и никуда не применяем (т.е. не выполняем команду Drop), объект автоматически возвращается в инвентарь. Когда объект (Топор) роняем на объект Стул (машина Maska_stul2), то объект Maska_stul2 принимает новое состояние: 1) потащили Топор на Стул; 2) вызвали новое состояние объекта Maska_stul2 (топор стал рубить стул).