您应该创建一个 GameServer 类和一个 GameClient 类。游戏逻辑进入 GameServer,渲染进入 GameClient。如果您的游戏逻辑与您的渲染代码混合在一起,请查看一些模型视图控制器解释(这是一篇不错的文章:http ://www.badlogicgames.com/wordpress/?p=2668 )。
让我告诉你,通常服务器和客户端是完全不同的应用程序,有时让用户托管服务器是不可行的,因为它可能涉及配置防火墙等。
所以GameServer应该扩展Listener,创建kryonet的Server的实例,并将自己作为监听器添加到服务器中。GameClient 应该类似地扩展 Client,创建 kryonet 的 Client 实例,并将其自身添加为客户端的侦听器。
如果您将当前游戏状态类的引用传递给 GameClient,GameClient 可以与其通信并告诉它要渲染什么,然后游戏状态可以告诉客户端发送什么作为输入。类似地,如果您将当前游戏状态类的引用传递给 GameServer,则服务器可以为游戏逻辑提供输入,然后游戏逻辑可以告诉服务器将什么发送给客户端。
我建议在 IP 环回上创建一个简单的消息传递程序来熟悉 kryonet。