Tool
Объект Tool - "применение" - объект, который можно применить для других игровых объектов.
Содержание
Описание для чего используется объект Tool
Объект Tool — это игровой объект, который мы можем добавить в инвентарь, извлечь из инвентаря, применять на другие объекты, изменять им состояние, вернуть в инвентарь и удалить из инвентаря. При этом не требуется описание сложных машин, где задавались состояния для инвентаря: add (добавление в инвентарь), extract (извлечение из инвентаря и последующего его использования), return (возвращение в инвентарь), remove (удаление объекта и удаление из инвентаря). Объект Tool существует и имеет область применения в рамках всех существующих (или заданных) экранов.
Параметры объекта Tool
- Инвентарь - обязательно в свойствах должен быть указан инвентарь с которым связан объект, а с инвентарем — таблица, в ячейках которой хранятся объекты (см. свойства объекта Inventory)
- Add - состояние объекта, в котором он по клику на него добавит себя в инвентарь. В этом сотояниии можно изменить другой объект:
- obj - объект, состояние которого меняем;
- st - новое состояние объекта.
- Fail drop - неудачный дроп, т.е. объект Tool применили не к тому объекту. При этом можно можно изменить другой объект:
- obj - объект, состояние которого меняем;
- st - новое состояние объекта.
- Drag- если на объект наступили мышкой, и не отпуская его, начали перемещать, то при наличии этой команды, объект "прилипнет" к мышке, и будет за ней таскаться. Параметры команды:
- x1 - разрешено таскать, когда координата объекта правее;
- x2 - разрешено таскать, когда координата объекта левее;
- y1 - разрешено таскать, когда координата объекта ниже;
- y2 - разрешено таскать, когда координата объекта выше;
- obj - объект, у какого объекта надо изменить состояние;
- st - состояние, на какое надо изменить состояние.
- Drop - если нажатая кнопка мышки отпускается, вызвается эта команда, используется вместе с командой drop.
Параметры команды:
- obj - объект, на который надо уронить таскаемый объект
- obj2go -объект, которому меняем состояние, когда уронили на объект obj
- go — новое состояние объекта obj2go
- del — если 1 — объект Tool удаляется из инвентаря сразу после применения на объект obj, если 0 - объект Tool не удаляется из инвентаря сразу после применения на объект obj, а возвращается в инвентарь.
Состояния объекта Tool
У объекта Tool есть 6 состояний, которые можно задавать машиной:
- idle - дефолтное состояние, объект на клики, драг, дроп не реагирует;
- add - объект лежит, но по клику на него добавит себя в инвентарь;
- forced_add - объект добавляет себя в инвентарь (сразу по вызову состояния, безо всяких кликов), при этом срабатывает обработчик add, который может переводить различные объекты в другое состояние.
После любого из этих двух состояний объект переходит в состояние:
- extract - объект лежит в инвентаре и ждет пока его вытащат;
- return - объект возвращается в инвентарь, где бы он ни был;
- remove - объект удаляется из инвентаря навсегда.
Пример использования объекта Tool
В проекте RiteOfResurrection используеться объект Топор, который имеет тип Tool. Данный объект имеет следующие параметры:
По клику на объект (Топор) - он переходит в состояние Add, т.е. добавляеться в инвентарь.
Если мы вытаскиваем объект из инвентаря (т.е. выполняем Drag) и ни куда не применяем (т.е. не выполняем команду Drop), объект автоматически возвращаеться в инвентарь.
Когда объект (Топор)роняем на объект Стул (машина Maska_stul2), то объект Maska_stul2 принимает новое состояние:
1) потащили Топор на Стул:
2) вызвали новое состояние объекта Maska_stul2 (топор стал рубить стул):