0

目前我正在尝试用java创建一个战舰游戏。两个玩家连接到服务器,在那里放置船只并开始游戏。我已经创建了一个服务器和一个客户端。我不知道如何将一名球员的射门坐标从一名球员转移到另一名球员。船舶坐标存储在客户端的列表中。哪个是玩家交流的最佳解决方案?也许玩家的船坐标应该发送到服务器,第二个玩家会在服务器上检查它们?或者我应该坚持玩家发送给另一个玩家坐标并获得结果的想法?也许有人会有更好的主意。

4

3 回答 3

2

如果您不希望人们作弊,则将所有坐标数据保存在服务器上。客户端从服务器请求坐标数据。

您的客户端向服务器发送消息,服务器提供响应。这是您作为玩家知道服务器仍处于连接状态的唯一方法。

消息的内容和响应的内容由您决定。

于 2013-08-19T08:48:50.193 回答
2

启动后,将船舶坐标发送到服务器。(不要将它们存储在客户端。战舰游戏不需要超快的速度,所以最好在服务器上。)然后,让服务器发送“轮到你”的数据包给应该开始的客户端. 客户端选择一个拍摄位置,然后将其传输到服务器。服务器检查船舶或水,并将此数据发送给两个客户端。下一个转包,以此类推……

希望能帮助到你 :)

PS:我会使用 KryoNet 库!https://code.google.com/p/kryonet/

于 2013-08-19T08:49:35.870 回答
1

你现在用什么来交流?既然你用套接字标记了你的问题,我猜你正在使用普通的 ip 套接字。也许你看看 ar RMI。它易于设置,您几乎可以像普通的 java 调用一样使用它。

这种方式更新球员的投篮只是调用一个方法的问题。

于 2013-08-19T08:48:49.350 回答