2016-12-29 19 views
0

Я пытаюсь изучить DIS для небольшого проекта, который я имею в виду.Как работает PDU CreateEntity?

В основном у меня есть процесс, который запускает сценарий, и он может получать внешние команды для создания и удаления объектов.

Я другой процесс, карта, которая может отправлять команды в процесс сценария, а у меня два случая:

  • Процесс карты отправить команду для создания новой сущности, процесс сценария получает его и создает новый объект.
  • Процесс карты может создать новый объект без внешних команд (т. Е. Инициируется внутренней логикой сценария). Этот новый объект должен быть уведомлен в DIS.

DIS CreateEntity PDU имеет следующие поля:

  • OriginatingEntityID
  • ReceivingEntityID

Какие данные должны быть вставлены здесь процессом карты для того, чтобы отправить команду CreteEntity? Как я могу указать, какой игрок я хочу создать (F15, Soldier)?

Во втором случае, как я могу сообщить, что новый игрок был создан без внешних команд?

Во втором случае

ответ

1

Все зависит от конструкции вашего моделирования.

СМ (менеджер моделирования - то, что вы должны создать) создавал бы EntityID, и вы использовали бы эти ID в своем PDU CreateEntity. Вы также можете жестко закодировать их или создать свой собственный алгоритм для их создания. DIS сам по себе не определяет механизм генерации EntityID, но для этого требуется, чтобы каждый EntityID был уникальным.

При этом DIS требует, чтобы все объекты обновлялись не реже одного раза в 5 секунд (это не так уж и важно для DIS v7, так как эта задержка теперь может управляться на сущность).

Большинство совместимого с DIS программного обеспечения, которое я знаю, контролируют PDU EntityState для обнаружения новых объектов. Если объект не видел более 5 секунд, вы можете предположить, что он был уничтожен.

Надеюсь, это поможет.