Поищи мной

Контейнеры

Контейнеры являются расширенные функции , чтобы сделать его легко создавать составные объекты - то есть, элементы вашей игры сделаны из нескольких объектов. Например, танк в стратегии игры может состоять из двух частей: спрайт для основания танка, а другой спрайт для башни танка. Это дает им возможность вращаться независимо друг от друга. Добавление их обоих в контейнер затем позволяет события лечить оба объекта , как если бы они были одним, потому что они всегда выбирали вместе.

Очень важно быть знакомым с работы событий , чтобы понять , как работают контейнеры.
Создание контейнера

Чтобы добавить объект в контейнер, выберите один из объектов , которые вы хотите в контейнере и нажмите Создать ссылку в его свойствах (которая появляется под Container категории рядом с ярлыком Нет контейнера ). Откроется диалоговое окно , позволяющее выбрать объект для добавления в контейнер.

Дополнительные объекты могут быть добавлены в контейнер, нажав на объект Добавить ссылку в контейнерном категории снова. Объекты могут быть удалены, нажав Удалить ссылку.
Что делать контейнеры

Размещение объектов в контейнере имеет следующие эффекты:
Если один объект в контейнере создается, каждый другой объект в контейнере также автоматически создается.
Если один объект в контейнере разрушается, каждый другой связанный объект в контейнере также разрушен.
Если условие выбирает один объект в контейнере, каждый другой связанный объект в контейнере также выбрал.

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

Третий пункт является основной целью контейнеров. Контейнеры также выбрали в событиях в целом. Это делает события обработки контейнеров , как если бы они были одним объектом. Например, если условие выбирает базовый танк экземпляр, он также автоматически выбирает связанный башенки базы.
Примеры

В следующих событий, предположим , как TankBase и TankTurret находятся в контейнере.
В приведенном выше случае, A TankTurret экземпляр также создается , поскольку она находится в контейнере с TankBase . Она также может быть полезно , чтобы добавить действие , чтобы установить положение TankTurret , чтобы сделать его появиться на верхней части основания.


В этом случае, связанный TankTurret экземпляр также уничтожены , так как он находится в контейнере с TankBase .


В этом случае, когда пуля попадает в базу танка, только связанные с ним башенки вспышки. Если объекты не находились в контейнере, все башенки в игре будет мигать, в соответствии с правилами работы событий (поскольку ни одна турель не упоминается в условиях, действие распространяется на все из них). Однако, так как объекты находятся в контейнере, когда TankBase , который был поражен пулей определена, связанный с ним турель также взял. Это делает работу событие , как задумано, и это событие относится как объекты , как если бы они были объединены . В этом заключается суть контейнеров, а также для некоторых применений , таких как стратегия игры, там будет большое количество событий , преимущество этого типа выбора объектов для обеспечения работы в качестве единиц и случайно не влияют на другие экземпляры.
Размещение объектов контейнера в макете

В Layout View, можно создать экземпляр в контейнере сам по себе. Это , как представляется , нарушать правила 1 и 2 под Что делать контейнеры , так как объекты в контейнере должны всегда создавать и уничтожать вместе. Однако редактор не требует этого. Вместо этого, все отсутствующие объекты создаются автоматически при запуске макета. Это хорошая идея , чтобы убедиться , что вы создать достаточное количество объектов , в любом случае , так что вы можете изменить положение объекта, переменные экземпляра и другие свойства из макета View.
Объекты для хранения данных в контейнере

Можно добавлять объекты хранения данных , как массив и словарь в контейнер с другим объектом. Несмотря на то , что эти объекты невидимы, отдельный экземпляр объекта по - прежнему создается для каждого контейнера. Это позволяет иметь специальный массив или словарь для каждого экземпляра объекта. Это может быть очень полезным в качестве продвинутой замены переменных экземпляра , например, если очень большое количество переменных , необходимо, или если переменные должны быть динамически добавлены и удалены.

Комментариев нет:

Отправить комментарий