问题标签 [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 框架(),它不允许使用构造函数传递对象。因此,据我所知,制作用户对象是不可能的。

0 投票
1 回答
1911 浏览

java - Kryonet 和 Slick2D

我正在尝试在本教程的帮助下将 Kryonet 集成到 Slick2D 游戏中。我正在尝试创建一个服务器/客户端基础架构,用户可以在其中创建服务器或加入服务器来玩两人游戏。

本教程建议将整个游戏对象添加为“网络侦听器”,但在我的 Slick2D 游戏中,GameContainer 和 StateBasedGame 仅在整个应用程序中可用。

GameContainer 包装了我的游戏对象,这个游戏对象扩展了 StateBasedGame。我不知道如何集成 KryoNet。

我真的很难找到可以帮助我的信息,所以任何指导都会很棒。

0 投票
1 回答
847 浏览

android - 一旦客户端 2 连接,Kryonet 就会断开客户端 1

我以前曾与Kryonet进行过一对一的交流,而且效果很好。

现在我正在做一个更“标准”的项目,我们将有一台服务器和几个客户端连接到它。

我遇到的问题如标题中所述:客户端 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);这样我就可以看到它何时连接以及何时断开连接。

断开连接时我收到两条不同的消息:

真的不确定这里有什么,任何帮助将不胜感激。

编辑: 更多信息:我意识到在INFO: [kryonet] Connection 3 connected: /192.168.0.104和我的听众收到connected回调之间,大约需要 9 秒!很奇怪。

0 投票
2 回答
747 浏览

networking - Slick2D KryoNet 小程序

我正在使用带有 Slick2d 的 Kryonet 来制作 Java 游戏。

作为java应用程序运行时它工作正常,但是作为applet运行时我收到以下错误:

服务器在本地作为可运行的 jar 运行,客户端小程序也在本地以 HTML 文件形式运行,它运行 xampp 以充当 Web 服务器。

我尝试了不同的序列化程序、缓冲区大小和只发送单个字符串/布尔值等,它似乎不喜欢任何东西。客户端连接到服务器非常好,但是在发送任何数据包时,无论发送什么数据包,我都会收到上述错误。

任何帮助/建议将不胜感激 - 我已经为此困扰了一段时间!谢谢

0 投票
0 回答
293 浏览

java - Kryonet 日志不再出现

在我的 Eclipse 安装上安装 android SDK 之前,我的网络项目总是会从 Log.info("STRING") 输出任何内容到屏幕上的输出。

由于我已经为 Eclipse 安装了 Android 插件,因此从 Log.info 生成的任何内容都不再出现在输出控制台上。

即使将例如 Server.java 导出到 jar,jar 文件也只会输出来自 System.out.... 的任何内容。使用 com.esotericsoftware.minlog.Log; 用于从 Kryonet 包进行日志记录的包。

0 投票
1 回答
652 浏览

java - Kryonet:客户端不能同时发送和接收?

我正在使用 Slick2D 制作游戏并使用 Kryonet 进行多人游戏。我的架构设置为使所有客户端都连接到服务器,该服务器本身并不在玩游戏(与在同一程序中运行客户端和服务器的玩家相反)。这是一款 2D 射击游戏,当只有一个客户在玩时,一切正常。当我连接另一个客户端时出现此问题。

显然客户端不能同时发送和接收。例如,如果两个客户端同时射击他们的武器,则看起来只有那个玩家在对自己的客户端射击,而另一个玩家处于空闲状态。同样,如果两个玩家都在移动,则另一个玩家不会移动,直到客户端玩家停止,然后另一个玩家会跳到当前位置。

我在这里为客户端和服务器监听器提供了代码:

关于为什么我的客户不能同时发送和接收信息的任何想法,或者如何克服这个问题?

0 投票
1 回答
1533 浏览

networking - Kryonet:发现主机总是返回 null

我尝试使用 Kryonet 创建一个在线游戏。

当我提供 IP 地址(在代码中硬编码)时,连接和发送/接收工作。但是如果我尝试发现服务器,它永远不会响应我:该方法总是返回 null。

服务器:

客户:

这段代码有什么问题?请注意,我的测试是在 localhost 上启动的。这里有问题吗?

谢谢大家的回复。

乔纳森

0 投票
1 回答
3551 浏览

java - libgdx & kryonet:线程

我尝试使用 Libgdx 库为 Android 平台开发游戏。对于网络,我使用 Kryonet 库。

当我确定我的应用程序已连接到我的服务器时,我想更改屏幕。
网络部分似乎可以工作,但我的线程有问题:执行 OpenGL 的是 Kryonet 的线程,而不是 Libgdx 线程:

请注意,FirstSecond都是 Screen 类,仅绘制图像。

当我尝试启动第二个屏幕时出现此异常:线程“客户端”中的异常 java.lang.RuntimeException:在当前线程中找不到 OpenGL 上下文。

我可以强制 LibGDX 线程执行指令吗?是否可以采用其他方法?

谢谢乔纳森

0 投票
1 回答
1158 浏览

java - Kryonet 连接成功但收不到消息

嗨,我正在使用 Kryonet 作为我正在开发的游戏的网络库。

我在服务器端有这个代码:

这在客户端:

Message 只是一个包含字符串的类。当我尝试将客户端连接到服务器时,我得到“嘿,我们已连接!” 消息,然后在服务器的命令行中显示“从客户端接收到服务器的消息”。但是,m.text(消息的内容)没有打印出来,我也不知道为什么。

提前致谢。

0 投票
1 回答
1440 浏览

java - 从另一个线程中的对象运行方法

我有我在其中绘制的 LibGDX 应用程序和一个用于客户端或服务器的线程。使用 Kryonet 完成连接。当您的对手创建某事时,会收到一条消息,链接如下:

当这个回调被调用(并且它是正确的)时,我得到“在当前线程中找不到 OpenGL 上下文”。我认为它正在寻找 MyClient 线程中的对象堡垒。我想调用 fortress.map.addSoldier,它指的是当前存在于另一个线程中的对象。

如何从另一个线程调用该方法?

提前致谢