请教各位大佬
java吧
全部回复
仅看楼主
level 4
oracle1751 楼主
rt,最近在用java做联机的飞机大战游戏,现在写好了socket通信部分,但不知道要怎么实现双人同屏战斗?是用json将敌人,子弹之类的东西传给对方还是怎么样?[狂汗]
2022年04月20日 14点04分 1
level 13
有点意思。我想比较简单的应该是有一方作为服务端,以服务端为准,然后客户端去同步服务端的数据,客户端只需要发送玩家的状态到服务端处理即可。
这类游戏要求实时性比较高,最好能尽量把传输的数据压缩的小些。敌人和子弹等的类别使用标记就行,然后加上坐标,这个可以自己设定一下数据格式。
以下举个栗子:
游戏物体 1个字节表示
x坐标 2个字节表示
y坐标 2个字节表示
以5个字节为一组数据,那么
01 00 FF 01 00 02 03 84 01 2C
就表示,1号物体处于 255,256 坐标处,2号物体处于 900,300 坐标处。
物体可以是玩家,敌人,子弹等,可以在游戏内定义好,一个字节可以表示255种,我想对于这样的小游戏已经够了,坐标两个字节,最大65535,按像素的话4k屏都绰绰有余。
当然,实际情况可能还有各种状态的数据,比如生命值啊,必杀数量啊,buff啊,等等,这里只是提供一个思路,具体还要自己结合实际情况来设计[滑稽]
2022年04月20日 15点04分 2
[真棒]受教了,谢谢大佬
2022年04月20日 15点04分
@oracle1751 不过数据这块用json会简单很多[滑稽]
2022年04月20日 15点04分
还有个问题就是,怎么避免数据重复发送呢?比如用while循环,服务端给客户端发送了子弹的数据,客户端new了一个子弹对象,那怎么在下一次避免客户端又重复new一个同样的子弹呢
2022年04月22日 06点04分
1