2016-12-29 13 views
0

私が気づいている小さなプロジェクトのためにDISを学ぼうとしています。CreateEntity PDUの仕組みは?

基本的には、シナリオを実行するプロセスがあり、エンティティの作成と削除のための外部コマンドを受け取ることができます。

私はシナリオプロセスにコマンドを送信することができます別のプロセス、マップを、きた、と私は2例をしました:

  • マッププロセスは、新しいエンティティを作成するためのシナリオプロセスをコマンドを送信しますそれを受け取り、新しいエンティティを作成します。
  • マッププロセスは、外部コマンドなしで(つまり、内部シナリオロジックによってトリガーされた)新しいエンティティを作成できます。この新しいエンティティは、DISで通知される必要があります。

DIS CreateEntity PDUは、フィールドを次のようしています

  • OriginatingEntityID
  • は、データがCreteEntityコマンドを送信するために、マッププロセスによりここに挿入されなければならない

をReceivingEntityID?作成したいプレイヤーの種類を指定するにはどうしたらいいですか(F15、Soldier)?

2番目のケースでは、新しいプレーヤーが外部コマンドなしで作成されたことをどのように通知できますか?

第2の場合

答えて

1

すべてはシミュレーションのデザインによって決まります。

SM(シミュレーションマネージャ - 作成する必要があります)はEntityIDを作成し、これらのIDをCreateEntity PDUで使用します。ハードコーディングしたり、独自のカスタムアルゴリズムを作成して生成することもできます。 DIS自体は、EntityID生成メカニズムを定義していませんが、各EntityIDを一意にする必要があります。

つまり、DISでは、すべてのエンティティが少なくとも5秒間に1回更新される必要があります(DIS v7の場合はそれほど真実ではないため、エンティティごとに遅延を管理できるため)。

私が知っているDIS互換ソフトウェアのほとんどは、新しいオブジェクトを検出するためにEntityState PDUを監視しています。オブジェクトが5秒以上表示されていない場合は、オブジェクトが破壊されたとみなすことができます。

これが役に立ちます。