RecastnavigationDelphi
ポートオブリキャストナビゲーションがデルファイへ
ソースコードの場所: https://github.com/memononen/recastnavigation
ソースコードバージョン: 2014年11月1日頃
移植ガイドライン:
- RecastNavigationDelphiは、将来プロジェクトを同期し続けることができるように、可能な限りほとんど変更を加えて、RecastNavigationのまっすぐなクローンです。
- LIB機能の変更/改善は、最初にC ++マスターに含めて、分離を避ける必要があります。
- RNDは、IMGUI RNソリューションの代わりに簡単にするためのVCLであるGUIのものを除いて、RN構造に非常に密接に従います。
- すべてのファイル名は同じですが、「RN_」プレフィックスがあります。
- 一部のユニットは、円形の依存関係を避けるために分割され、rn_unitnamehelperと呼ばれます。
コードに関するヒント:
- 「ループ内でイテレータが変更される」ループとループのマルチコンディションは、while/Repeedループに変換されました。 「続行」の前にループコードを繰り返す必要があります。
- MOME方法最初に2つの引数(SRC、DST)をDelphiに交換する必要があります。
- Delphiは、{$ o}ディレクティブを使用して、エラーを抑制する{$ o}指令で操作する必要があります。
- Delphiは、記録内で作成されたオブジェクトを手動で処分する必要があります。これらに組み込みのデストラクタのサポートがないためです。
- ポインターのトリックを簡素化するには、 {$ pointermath on}をほぼすべてのユニットで有効にする必要がありました。
- typed @ operatorの設定は非常に役立ちますが、悲しいことに、それは時々機能しません。
ポーティング中の一般的な落とし穴:
- somepointerの代わりに引数@somepointerを渡す。 typed @はそれらをキャッチするのに役立ちますが、常にではありません。
- 引数の場所を交換せずに移動/充填装置のメソッドを呼び出します。
- 執筆.. to ..の代わりにループを行います。
トドス:
- コードの周りに多数のメモリが漏れます。
- Tempobstaclesデモ。
- 一部の部品はコメントアウトされ、移植を待っています。
- ソースコードの現在の状態と同期します。