Group

Материал из wiki.appsalutecreator.com
Версия от 10:59, 14 мая 2013; Odyadina (обсуждение | вклад) (Пример использования)
Перейти к: навигация, поиск

Объект Group (группа) служит "передатчиком" состояний и параметров одному из множества объектов, которые являются участниками группы.

Участник группы - любой объект, у которого есть поле группа, может стать участником группы.

Группа - посредник между отправителем и получателем. Посредника удобно использовать в том случае, когда вам нужно в зависимости от определенных условий обращаться то к одному, то к другому участнику группы, а к какому именно - не известно. Тогда группа сама определяет получателя в зависимости от условий.


Характеристика объекта

  • Объект Group должен находиться на глобальном экране, чтобы быть видимым на любом экране проекта. Например, его можно поместить рядом с опциями.
  • Объекту Group может принадлежать множество объектов. Например, на экране 1 находится машины А, на экране 2 находится машина В, у них в поле группа выбран объект Group1, который лежит на глобальном экране. Т.е. объекты А и В относятся к группе Group1. Если имеется одна кнопка на расшариной сцене, которая должна на первом экране передавать объекту А состояние st_1, а на втором экране передавать объекту В состояние st_1, то достаточным будет передать объекту Group1 состояние st_1. Группа транслирует это состояние на тот из своих объектов, который находится на текущем экране.
  • Объект Group может передавать состояние или параметр только одному из своих объектов. Во время каждого обращения к группе перечитывается объект, которому будет передаваться состояние, если таких объектов окажется больше 1, возникнет ошибка потому, что группа не будет знать, какому из своих объектов передать состоянии. Следовательно, в случае, когда на экране необходимо разместить несколько объектов принадлежащих группе, все эти объекты должны размещаться на разных сценах, и в каждый момент времени должа быть включена (vis=1) только одна из этих сцен, а все остальные сцены, содержащие объекты группы, должны быть отключены (vis=0). Тогда Group передаст состояние только тому одному объекту, который будет находиться на видимой сцене.
  • В глобальном экране может находится несколько объектов типа Group. Например, Group1 объединяет объекты отвечающие за запуск какой-то мини-игры, при этом на каждом экране запуск уникален, но кнопка запуска одна, а Group2 отвечает за выход из игры, при этом выход на кажном экране отличается, но кнопка выхода одна. Тогда при запуске игры мы будем обращаться к объекту Group1, а при выходе из игры - к объекту Group2, не зависимо от экрана.
  • Объекты принадлежащие одной группе могут быть разного типа и разноименными.
  • Операции применимые к группе:

- set - группе можно установить состояние st и параметр(значение) par(val);

- drop - на группу (объекты принадлежащие группе) можно отпустить объект;

  • Если объекту Group передается состояние st_1, то все объекты принадлежащие группе должны иметь состояние st_1, иначе возникнет ошибка.
  • К группе могут обращаться машины, кнопки и объекты tool. Т.е. в машине, кнопке и tool можно указать set (drop) группе.
  • Группа может транслировать гостя своим машинам. Например, кнопка btn1 передает группе состояние st_1. К группе относится машина А, которая находится на обычном экране. Машина А переходит в состояние st_1 и считает, что ее перевел в это состояние объект btn1.


Пример использования

Рассмотрим часть проекта, в котором используются группы.

На глобальном экране находятся Опции и три Группы (см.Рис.)

Group1.jpg

Каждой группе принадлежит свое множество участников с разных экранов. К группе Group_mask, например, принадлежат все маски игровых персонажей, такие маски присутствуют практически на каждом экране проекта; а к группе Group_clean относятся все источники воды в проекте (фонтаны, гидранты, шланги...)

Group2.jpg

На экране fountain находится объект dialoge_small, принадлежащий группе Group_mask.