2012-12-11 42 views
1

我试图在this tutorial的帮助下将Kryonet集成到Slick2D游戏中。我正在尝试创建一个服务器/客户端基础结构,用户可以创建服务器或加入服务器来玩双人游戏。Kryonet和Slick2D

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

GameContainer包装我的游戏对象,并且此游戏对象扩展了StateBasedGame。我不知道如何整合KryoNet。

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

回答

3

您应该创建一个GameServer类和一个GameClient类。游戏逻辑进入GameServer,渲染进入GameClient。如果你的游戏逻辑与你的渲染代码混合在一起,看看一些模型视图控制器的解释(这里是一个体面的文章:http://www.badlogicgames.com/wordpress/?p=2668)。

让我告诉你,通常是服务器和客户端是完全不同的应用,有时它不是feasable让用户主机的服务器,因为它可能涉及配置防火墙和诸如此类的东西。

所以GameServer应该扩展Listener,创建一个kryonet的Server实例,并将自己添加为服务器的侦听器。 GameClient应该类似地扩展Client,创建kryonet的Client的一个实例,并且将它自己作为一个监听器添加到客户端。

如果您将当前游戏状态类的引用传递给GameClient,则GameClient可以与它通信并告诉它要呈现的内容,然后游戏状态可以告诉客户端发送什么作为输入。同样,如果您传递当前的游戏状态类的游戏服务器的一个参考,服务器可以向游戏逻辑提供输入,然后游戏逻辑可以告诉发送到客户端的服务器。

我建议在IP环回上创建一个简单的消息传递程序来熟悉kryonet。