Образовательный виртуальный мир vAcademia

Инструменты пользователя

Инструменты сайта


Боковая панель

Функции эксклюзивного захвата объекта

Программа на vJS может эксклюзивно захватить объект. В этом случае аватар пользователя, на компьютере которого происходит выполнение фрагмента vJS-программы, становится владельцем объекта. Если у объекта есть владелец, то только он может менять его синхронизируемые свойства. Другой пользователь не сможет захватить объект, у которого уже есть владелец. Если владелец объекта покинул виртуальный мир, то объект освобождается от владельца.

Для работы с эксклюзивным захватом объектов предназначены следующие методы 3D-объекта:

captureObject – попытаться захватить 3D-объект эксклюзивно, если заранее известно, что это невозможно, то функция возвращает false. Если одновременно несколько аватаров попытаются захватить 3D-объект, то один аватар осуществит захват, а остальным придет событие onCaptureLost (см. ниже).

freeObject – освободить объект.

isFree – возвращает булевый статус, захвачен ли данный объект в данный момент времени.

getOwner – возвращает строку с логином пользователя, который захватил объект. Если объект свободен, то возвращается пустая строка.

isCapturedByMe – возвращает булевый статус, захвачен ли объект текущим пользователем.

Событие onCaptureLost 3D-объекта вызывается, если:

  • владелец объекта сменился на любого пользователя, кроме текущего;
  • если текущий пользователь пытался захватить объект, но кто-то производил попытку захвата одновременно и опередил текущего пользователя.
jazyk/object_capture.txt · Последние изменения: 2023/05/08 17:44 (внешнее изменение)