我的朋友使用java开发了这个游戏,他们让我为它做多层。它是像小行星一样的侧滚动射击游戏。我知道它必须处理套接字并且id更喜欢使用tcp over udp来获得持续连接而不是来回的数据集群。我有一个proto类型,从客户端到服务器来回发送字符串反之亦然。但是我如何将其实现到游戏中呢?我会将船的x和y坐标发送到托管游戏的游戏然后发回其他游戏坐标吗?非常感谢任何帮助,谢谢你的进步。
答案 0 :(得分:2)
我会为你的游戏建议这个结构:
客户只需读取对象坐标,绘制它们并将船只/激光位置发送到服务器。
服务器将生成对象并将其位置发送给所有客户端。同时读取船舶位置和更新用户界面。
发送/读取数据可能很难。有几种方法可以这样做,取决于你现在理解的更容易。它可以在以后改进。
"x1,y1;x2,y2;x3,y3;x4,y4; ..."分开,或者,因为您要发送
("," between x-y and ";" between sets of coordinates)
String
,所以请始终使用相同数量的字符(例如4){{ 2}} 答案 1 :(得分:0)
嗯,这可以用几种方式完成, 假设我们有对象: - Space_1,Space_2,...... Space_n作为太空飞船物体
随着游戏的进行,屏幕将充满空间工艺物体 每次你将获得游戏中所有space_x元素的x,y坐标 你也会发送你的坐标
所以客户机上的游戏会有 - 坐标的point1(x,y) - point_2 .... point_n(x,y)用于其他太空飞行器(你的对手) - 每次刷新x,y为对手改变
您将在当地应用程序中处理航天器的拍摄 让我们说你射击并击中space_3 您将向服务器发送space_3已被命中,因此将此船标记为服务器中的死机 当其他客户端(其他用户/玩家)从服务器获得刷新调用时,所有客户端都会看到space_3已被命中
希望这有助于,如果它过于抽象