Group — различия между версиями
Odyadina (обсуждение | вклад) |
Odyadina (обсуждение | вклад) |
||
Строка 1: | Строка 1: | ||
− | Объект '''Group''' | + | Объект '''Group''' (группа) служит "передатчиком" состояний и параметров одному из множества объектов, которые являются участниками группы. |
− | '''Участник группы | + | '''Участник группы''' - любой объект, у которого есть поле группа, может стать участником группы. |
− | + | Группа - посредник между отправителем и получателем. Посредника удобно использовать в том случае, когда вам нужно в зависимости от определенных условий обращаться то к одному, то к другому участнику группы, а к какому именно - не известно. Тогда группа сама определяет получателя в зависимости от условий. | |
− | Характеристика объекта | + | == Характеристика объекта == |
* Объект ''Group'' должен находиться на глобальном экране, чтобы быть видимым на любом экране проекта. Например, его можно поместить рядом с опциями. | * Объект ''Group'' должен находиться на глобальном экране, чтобы быть видимым на любом экране проекта. Например, его можно поместить рядом с опциями. | ||
Строка 20: | Строка 20: | ||
* К группе могут обращаться машины, кнопки и объекты ''tool''. Т.е. в машине, кнопке и ''tool'' можно указать ''set (drop)'' группе. | * К группе могут обращаться машины, кнопки и объекты ''tool''. Т.е. в машине, кнопке и ''tool'' можно указать ''set (drop)'' группе. | ||
* Группа может транслировать гостя своим машинам. Например, кнопка ''btn1'' передает группе состояние ''st_1''. К группе относится машина ''А'', которая находится на обычном экране. Машина ''А'' переходит в состояние ''st_1'' и считает, что ее перевел в это состояние объект ''btn1''. | * Группа может транслировать гостя своим машинам. Например, кнопка ''btn1'' передает группе состояние ''st_1''. К группе относится машина ''А'', которая находится на обычном экране. Машина ''А'' переходит в состояние ''st_1'' и считает, что ее перевел в это состояние объект ''btn1''. | ||
+ | |||
+ | |||
+ | == Пример использования == | ||
+ | |||
+ | Рассмотрим часть проекта, в котором используются группы. | ||
+ | |||
+ | На глобальном экране находятся Опции и три Группы (см.Рис.) | ||
+ | [[Файл:Group1.jpg]] |
Версия 10:26, 14 мая 2013
Объект 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.
Пример использования
Рассмотрим часть проекта, в котором используются группы.