問題タブ [kryonet]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
4 に答える
4691 参照

java - サイズが不明な多次元配列

サイズが定義されていない配列を作成する必要があります。この配列にはユーザー情報が含まれます。

例えば:

ただし、標準のJava配列には既知の長さが必要なようですが、これはわかりません。

どのような代替手段を使用できますか?(コーディング例もいくつか見ていきます)コンストラクターでオブジェクトを渡すことができないTCPフレームワーク( したがって、私が見る限り、Userオブジェクトを作成することはできません。

0 投票する
1 に答える
847 参照

android - Kryonet は、クライアント 2 が接続するとすぐにクライアント 1 を切断します

以前、Kryonetで 1 対 1 の通信を行ったことがありますが、うまくいきました。

現在、私はより「標準的な」プロジェクトを行っており、1 つのサーバーとそれに接続する複数のクライアントを用意しています。

私が抱えている問題は、タイトルに記載されているとおりです。クライアント 1 は接続しますが、問題ありません。次に、クライアント 2 に接続を要求すると、すぐにクライアント 1 が切断されます。どういうわけか、サーバーは複数の同時接続を維持したくありません。

数回、2つを接続できた後、3つ目が接続するたびに、もう一方がドロップします。

いくつかの異なるデバイスですべて ICS+ (galaxy nexus、tab2、SGS3) で実行されます。

私が使用しているコードは、例に非常によく似ています。

サーバ側:

そしてクライアント側:

現時点でのリスナーはちょうどいいLog.v(TAG, "something happened);ですし、Kryonet ライブラリからのすべてのログも有効にしているcom.esotericsoftware.minlog.Log.set(com.esotericsoftware.minlog.Log.LEVEL_TRACE);ので、接続しているときと切断しているときを確認できます。

切断すると、次の 2 つの異なるメッセージが表示されます。

ここに何があるか本当にわからないので、助けていただければ幸いです。

編集: もう少し情報: とINFO: [kryonet] Connection 3 connected: /192.168.0.104リスナーがconnectedコールバックを受け取ることに気付きました。約 9 秒かかります! 非常に奇妙な。

0 投票する
2 に答える
747 参照

networking - Slick2D KryoNet アプレット

Slick2d で Kryonet を使用して Java ゲームを作成しています。

Java アプリケーションとして実行すると問題なく動作しますが、アプレットとして実行すると次のエラーが発生します。

サーバーは実行可能な jar としてローカルで実行され、クライアント アプレットはローカルでも HTML ファイルで実行され、xampp を実行して Web サーバーとして機能します。

さまざまなシリアライザー、バッファーサイズ、単一の文字列/ブール値などを送信してみましたが、何も気に入らないようです。クライアントはサーバーに完全に接続しますが、パケットを送信すると、どのパケットが送信されても​​上記のエラーが発生します。

ヘルプ/アドバイスをいただければ幸いです-私はしばらくこれに悩まされていました! ありがとう

0 投票する
0 に答える
293 参照

java - Kryonet ログが表示されなくなった

Android SDK を Eclipse インストールにインストールする前は、Network プロジェクトは常に Log.info("STRING") から画面上の出力に何かを出力していました。

Eclipse 用の Android プラグインをインストールしたので、Log.info から生成されたものは出力コンソールに表示されなくなりました。

たとえば Server.java を jar にエクスポートしても、jar ファイルは System.out からのものしか出力しません。Kryonet パッケージからのロギング用パッケージ。

0 投票する
1 に答える
652 参照

java - Kryonet: クライアントは送信と受信を同時に行うことはできませんか?

Slick2D でゲームを作成し、マルチプレイヤーに Kryonet を使用しています。私のアーキテクチャは、すべてのクライアントがゲーム自体をプレイしていないサーバーに接続するように設定されています (同じプログラムでクライアントとサーバーを実行しているプレイヤーとは対照的です)。これは 2D シューティング ゲームであり、クライアントが 1 つだけの場合はすべて正常に動作します。別のクライアントに接続すると、この問題が発生します。

どうやら、クライアントは同時に送受信することはできません。たとえば、両方のクライアントが同時に武器を撃っている場合、そのプレイヤーだけが自分のクライアントを撃っているように見え、他のプレイヤーはアイドル状態です。同様に、両方のプレーヤーが動いている場合、もう一方のプレーヤーはクライアント プレーヤーが停止するまで移動せず、その後、もう一方のプレーヤーは現在の位置にジャンプします。

クライアント リスナーとサーバー リスナーのコードは次のとおりです。

クライアントが同時に情報を送受信できない理由、またはこの問題を克服する方法についてのアイデアはありますか?

0 投票する
1 に答える
1533 参照

networking - Kryonet: ディスカバリー ホストは常に null を返す

Kryonet を使用してオンライン ゲームを作成しようとしています。

IPアドレス(コードにハードコードされている)を指定すると、接続と送受信が機能します。しかし、サーバーを検出しようとすると、応答がありません。メソッドは常に null を返します。

サーバ:

クライアント:

このコードのどこが間違っていますか? 私のテストは localhost で起動されることに注意してください。ここで問題ですか?

すべての応答に感謝します。

ジョナサン

0 投票する
1 に答える
3551 参照

java - libgdx & kryonet: スレッド

Libgdx ライブラリを使用して、Android プラットフォーム用のゲームを開発しようとしています。ネットワークには、Kryonet ライブラリを使用します。

アプリケーションがサーバーに接続されていることが確実なときに、画面を変更したいと考えています。
ネットワーク部分は機能しているようですが、スレッドに問題があります。OpenGL を実行するのは Kryonet のスレッドであり、Libgdx スレッドではありません。

FirstSecondは両方とも、画像を描画するだけの Screen クラスであることに注意してください。

Second Screenを起動しようとすると、この例外が発生します: スレッド " Client " で例外 java.lang.RuntimeException: 現在のスレッドで OpenGL コンテキストが見つかりません。

LibGDX スレッドに強制的に命令を実行させることはできますか? 他のアプローチは可能ですか?

ありがとうジョナサン

0 投票する
1 に答える
1158 参照

java - Kryonet 接続は成功しましたが、メッセージを受信して​​いません

こんにちは、開発中のゲームのネットワーク ライブラリとして Kryonet を使用しています。

サーバー側に次のコードがあります。

そして、これはクライアント側で:

Message は、文字列を含む単なるクラスです。クライアントをサーバーに接続しようとすると、「Hey, we are connected!」というメッセージが表示されます。メッセージとその後、サーバーのコマンドラインで「クライアントからサーバーへ受信したメッセージ」。ただし、m.text (メッセージの内容) は出力されず、その理由はわかりません。

前もって感謝します。

0 投票する
1 に答える
1440 参照

java - 別のスレッドのオブジェクトからメソッドを実行する

ペイントするLibGDXアプリケーションと、クライアントまたはサーバー用のスレッドがあります。接続は Kryonet を使用して行われます。対戦相手が何かを作成すると、メッセージが受信されます linke:

このコールバックが呼び出されると (そして正しく)、「現在のスレッドで OpenGL コンテキストが見つかりません」というメッセージが表示されます。MyClient スレッド内でオブジェクトの要塞を探していると思います。現在別のスレッドに存在するオブジェクトを参照する fortress.map.addSoldier を呼び出したいです。

別のスレッドからメソッドを呼び出すにはどうすればよいですか?

前もって感謝します