Google Apiを使用して、リアルタイムマルチプレイヤーを作成しています - libGDXを使ったトップダウンシューティングゲーム。GoogleApiリアルタイムマルチプレイアップデートを更新
プレーヤーの位置は、 "レンダリング()" メソッドの呼び出しのたびに "sendUnreliableMessage" 経由で送信されます。
- はレンダリング()と呼ばれます。
- "デバイスA"はローカルプレーヤーの位置(x、y)と移動方向を "sendUnreliableMessage"に送信します。
- "デバイスB"がメッセージを受信します。最後の位置(x、y)と新しい位置(x、y)の間を補間します。
- 「デバイスB」は、ローカル敵プレイヤーを新しい位置に移動させます。選手たちが撮影し
弾丸がこのように「sendReliableMessage」経由で送信されている(補間して最終的な位置):
- プレイヤーは「火」ボタンを押します。
- Bulletオブジェクトは、ローカルの「Device A」で作成され、飛行を開始します。
- 弾丸の作成位置(x、y)と方向は、「sendReliableMessage」によって他のプレイヤーに送信されます。
- "デバイスB"はメッセージを受信し、受信した開始xおよびyにローカルで箇条書きオブジェクトを作成し、受信方向に飛行させます。
移動メッセージは、それぞれの "render()"呼び出しで送信されます。 - 毎秒約30〜60回FPSに依存します。
「火災」ボタンが押された場合にのみ、メッセージが送信されます。 1回だけ。そして弾丸の "創造位置"だけ。両方のデバイスは、この位置からローカルでの移動に関する更新を計算します。
私の問題や質問は以下のとおりです。このようなプレーヤーの位置を更新
- は、多くの場合、右の方法は何ですか?
- ショットが失われています。 1-3の4。パッケージの損失は約50-80%です。
私は移動時にプレイヤー位置の更新を送信するだけでテストしました。それから私は "reliableMessages"が "unreliableMessages"を送信したときに失われていると思うのですが、
私は答えを書くためにあなたの時間を割いてくださったことを感謝していますが、実際にすべてのことで私を助けていませんでし。私はすでに2つのメッセージングプロトコルを認識しており、すでに私のポストで説明しています。どこで使用していますか、私は補間を使用してパッケージ損失の問題を解決しています。 - また、私は完全にGoogleドキュメントが書いて説明していることを認識しています、この投稿の全体的なポイントは、 "reliableMessage"でさえ、 "配達、不誠実、および注文"は保証されていないということです。 – MarvinJ