用于侧滚式太空射击游戏的Java游戏服务器
我的朋友们用java开发了这个游戏,他们让我为它做多层设计。这是一个像小行星一样的侧滚射击游戏。我知道它必须处理套接字,我更喜欢使用tcp over udp来保持稳定的连接,而不是来回使用数据集群。我有一个原型,它将字符串从客户端来回发送到服务器,反之亦然。但我如何在游戏中实现这一点呢?我会将飞船的x和y坐标发送给游戏主机,然后再发送回其他游戏坐标吗?如果您有任何帮助,我们将不胜感激。请提前向您致谢。好的,这可以通过几种方式实现, 假设我们有目标: -太空1号、太空2号……太空作为航天器物体 随着游戏的进行,屏幕上将会充满宇宙飞船的物体 每次你都会得到游戏中所有空间元素的x,y坐标 你也会发送你的坐标 因此,客户端机器上的游戏将 -坐标的点1(x,y) -点2…点n(x,y)用于其他航天器(对手的) -每次它都会刷新x,y,以便对手更改 您将在本地应用程序中处理航天器的拍摄 假设你射中了太空3 您将向服务器发送空间_3被击中的消息,因此在服务器中将该飞船标记为死亡 当其他客户端(其他用户/玩家)从服务器收到刷新调用时,所有客户端都会看到空格_3被命中用于侧滚式太空射击游戏的Java游戏服务器,java,sockets,network-programming,Java,Sockets,Network Programming,我的朋友们用java开发了这个游戏,他们让我为它做多层设计。这是一个像小行星一样的侧滚射击游戏。我知道它必须处理套接字,我更喜欢使用tcp over udp来保持稳定的连接,而不是来回使用数据集群。我有一个原型,它将字符串从客户端来回发送到服务器,反之亦然。但我如何在游戏中实现这一点呢?我会将飞船的x和y坐标发送给游戏主机,然后再发送回其他游戏坐标吗?如果您有任何帮助,我们将不胜感激。请提前向您致谢。好的,这可以通过几种方式实现, 假设我们有目标: -太空1号、太空2号……太空作为航天器物体 随
希望这有帮助,如果它太抽象的话,我会为你的游戏推荐这种结构:
- 创建一个托管游戏并进行计算的服务器
- 让服务器创建和处理在屏幕中移动的对象(ennemies)。这样,您只需发送数据服务器->客户端即可更新用户界面
- 至于太空船,服务器必须同时更新所有客户端,因此在客户端,每次有移动时,都向服务器发送x,y坐标,然后向每个玩家广播新位置。拍摄或客户端生成的任何其他事件也是如此
- 例如,当两个对象发生碰撞时(例如激光和ennemy),这应由服务器处理,同时具有对象和船舶位置
服务器将生成对象并将其位置发送给所有客户端。同时读取船舶位置并更新用户界面。
发送/读取数据可能很困难。有几种方法可以做到这一点,这取决于你现在更容易理解什么。以后可以改进
- 在整个游戏过程中,服务器不断地将对象发送到指定的位置
如果屏幕上的对象数不总是相同的,则发送一个字符串,其中包含当前对象数+它们的坐标。客户端使用之前指定的数字在这些坐标中循环 - 船舶也是如此。我想这将是一个固定的数字,所以你可以发送他们的坐标
- 在字符串内部,坐标应该用一些东西隔开,这样在收到时您就可以读取它们
一种方法是用特定字符将它们分开
"x1,y1;x2,y2;x3,y3;x4,y4; ..." - 最后,我建议在发送的每个数据包中添加一个标题,以了解它是一个对象坐标列表还是一个船舶坐标列表
("," between x-y and ";" between sets of coordinates)