1

サーバーでの作業を開始しましたが、問題は、各プレイヤーが見ている他のプレイヤーを検出して、周囲のプレイヤーに関する情報を送信できるようにする方法が必要なことです。特定のプレイヤーに。

最初に、2D サークル オブジェクトをプレーヤー オブジェクトにアタッチし、データ構造内のすべてのプレーヤーに対して衝突チェックを行うことを考えましたが、これは非常にパフォーマンスが必要です。これに適したアルゴリズムはありますか? 私を助けてください!

4

1 に答える 1

1

円と衝突検出ライブラリを使用する代わりに、長方形を使用して手動でチェックを行うことができます。これは、画面とプレイ エリアがおそらく長方形であるため便利です。

int dist = 100;
if (Math.abs(a.x - b.x) < distX && Math.abs(a.y - b.y) < distY) {
    // send player b to player a

2 点間の距離を手動でチェックすることもできます。これは円を使用するのと同じですが、衝突検出ライブラリのオーバーヘッドが取り除かれます。

プレーヤーが極端に速く動かない場合は、すべてのティックではなく、10 ティックごとにこのチェックを実行できます。

于 2015-03-12T18:03:08.033 に答える