0

我正在尝试为我想到的一个小项目学习 DIS。

基本上我有一个运行场景的进程,它可以接收用于创建和删除实体的外部命令。

我有另一个进程,一个地图,可以向场景进程发送命令,我有两种情况:

  • 映射进程发送一个创建新实体的命令,场景进程接收它,并创建新实体。
  • map 进程可以在没有外部命令的情况下创建一个新实体(即由内部场景逻辑触发)。应该在 DIS 中通知这个新实体。

DIS CreateEntity PDU具有以下字段:

  • 发起实体 ID
  • 接收实体 ID

为了发送 CreteEntity 命令,映射进程应在此处插入哪些数据?如何指定要创建的玩家类型(F15,士兵)?

在第二种情况下,如何在没有外部命令的情况下通知创建了新播放器?

在第二种情况下

4

1 回答 1

1

这完全取决于您的模拟设计。

SM(模拟管理器 - 您必须创建)将创建 EntityID,您将在 CreateEntity PDU 中使用这些 ID。您还可以对它们进行硬编码或创建自己的自定义算法来生成它们。DIS 本身并没有定义 EntityIDs 生成机制,但它确实要求每个 EntityID 都是唯一的。

话虽如此,DIS 要求所有实体至少每 5 秒更新一次(对于 DIS v7 而言并非如此,因为现在可以按实体管理该延迟)。

我知道的大多数 DIS 兼容软件都会监控 EntityState PDU 以检测新对象。如果一个物体超过 5 秒没有被看到,你可以认为它已经被摧毁了。

希望这可以帮助。

于 2017-01-10T02:12:40.383 回答