我正在使用Google创建一个实时多人-自上而下的射击游戏与libGDX。
Player位置在"render()“方法的每个调用中都被发送到"sendUnreliableMessage”:
球员发射的子弹会像这样通过"sendReliableMessage“:
移动消息在每个“呈现()”调用上发送。-Depending在FPS上大约每秒30-60次.
只有在按下“失火”按钮时,才会发送邮件。只有一次。只有子弹的“创造位置”。这两种设备都从这个位置计算本地移动的更新。
我的问题是:
我测试的只是发送球员移动位置的更新。然后一动不动地射门4次(没有发送“球员位置‘unreliableMessages”),所有4个镜头都出现在“设备B”上。
这让我认为,当我在每一个帧更新上发送"reliableMessages“(同样是每秒30-60次)时,"unreliableMessages”就会丢失。
发布于 2016-09-11 10:51:44
如果我们完全依赖于发送游戏数据,按照我的理解,您可以使用Google游戏服务提供的两种消息传递协议来实现数据消息的发送。
回答你的问题:
1.像这样更新球员位置通常是对的?
您仍然可以选择使用这两种消息传递协议中的任何一种。只要选择哪一个最适合你,然而,请注意,你的应用是负责确保游戏的行为正确的时候,如果信息被丢弃在传输或收到的秩序。
2.投篮迷路了。4中的1-3,约为50-80%的封装损失.
有了可靠的消息传递,数据传递、完整性和排序就得到了保证。您可以选择使用回调将传递状态通知给您。但是,为了避免丢失一些更新,请注意,您可以为可靠或不可靠的消息发送最大大小的消息。
除了文档中给出的内容之外,本文中的建议--因此,后android上实时多人推送更新的最佳方法可能也会有所帮助。
https://stackoverflow.com/questions/39425593
复制相似问题