美文网首页
同步问题

同步问题

作者: z小轩 | 来源:发表于2019-04-11 12:02 被阅读0次

因为制作的是一个简易版的。
所以很多的同步,全部依赖于客户端自己来完成。

我们有哪些东西是由客户端自己来实现的同步呢?

  1. 鱼位置同步。
    这个问题,我们处理了很多版本。
    第一种是以服务器记录每条鱼已存活多久的时间为记录,然后客户端以这个记录时间来算出当前鱼所处的坐标位置index。
    但是这种方式在客户端出现一些卡帧的情况后,就会导致蝴蝶效应,后续的偏差越来越大。
    第二种 服务器记录鱼的产生时间,然后客户端自己在每帧中计算鱼的已存活时间,然后计算出当前鱼所处的坐标index。
    这种方式,就算是会出现卡帧,但是客户端也会在后续的每帧刷新中同步矫正相应的位置。

  2. 炮台的角度同步。
    正常情况下,我们在每次开炮时都将对于炮台的角度,由服务器同步给了其他玩家。这个没什么问题。
    但是,在锁定鱼的情况下的角度同步,如果鱼位置的同步没什么问题,那么这个也不会有什么问题,
    但是因为是由纯客户端进行的鱼位置同步,那么就总是会出现一些无法意料的同步问题。所以当不同客户端的鱼位置不同时,
    那么从炮台到对应的锁定的鱼之间的角度就会出现偏差。而炮台是同步的对应的炮台的角度,但子弹的角度,却是由锁定鱼位置和炮台位置计算出来的角度。所以就会出现,炮台角度朝向和子弹发射的角度朝向出现偏差。
    那么,我的解决办法是,当没有锁定的鱼时,炮台直接同步服务器下发的角度,如果有锁定鱼,那么炮台角度,直接重新在客户端本地计算出当前的炮台角度和子弹角度。使自己的客户端看起来是完全正常的。就算鱼的位置不同步,也依然不会有问题。

  3. 随机小鱼群的同步。
    客户端会出现一些同种鱼走相同路线,但是位置又有一些偏差的小鱼群。
    小鱼群的实现,是由客户端自身计算出这一波鱼里,其中的一部分鱼能组成小鱼群,然后计算出每条鱼的位置偏移来实现鱼群的效果。
    而这个位置的偏移是由随机数来实现的。那么我们想要在不同的客户端上看到的小鱼群是一样的,就需要同步这个随机种子。
    我们以这个鱼群的产生时间做为随机种子,那么就算是在不同的客户端,我们也依然能够同步这个随机种子,达到我们想要的随机效果。

相关文章

  • 同步问题

    对于进程这块来说,同步问题算是一个大头了,我也是看了好几遍,真的服 王道里面这样说:“如果一个操作想要取得资源你就...

  • 同步问题

    因为制作的是一个简易版的。所以很多的同步,全部依赖于客户端自己来完成。 我们有哪些东西是由客户端自己来实现的同步呢...

  • 同步和互斥

    同步和P-V操作 同步和互斥的概念 P-V操作的概念 P-V操作解决互斥问题 P-V操作解决同步问题 经典同步问题...

  • 线程的基本语法

    线程同步[解决线程安全问题] 解决线程安全问题 线程同步方式一:同步代码 语法基本 synchronized (同...

  • OpenMP多线程——Parallel for

    多线程——线程同步 数据竞争问题 线程互斥同步——critical 线程互斥同步——atmoic 线程互斥同步——...

  • Mac版本有道云笔记 同步失败问题

    Mac 版本 有道云笔记同步异常问题,同步失败,无法同步... 最近使用Mac版本有道云笔记,发现同步文件同步失败...

  • 移动同步问题

    玩家在通过摇杆进行移动时,客户端会向服务器发送两个坐标点:客户端起始坐标,客户端预判断的目标坐标。 服务器在收到这...

  • omnifocus同步问题

    对于易效能的践行者来说OF是再熟悉不过的事物管理软件了,对于第一次使用OF的同学来说,张昊老师的这篇 《Om...

  • geth同步问题

    问题描述 geth1.9.14版本用fast模式同步区块过程中出现以下报错,然后退出geth。 看意思是区块出现异...

  • 群组同步问题

    融云中群成员是有App自己提供并进行维护的,融云只是同步群组关系数据,并不保存群组的具体信息,融云会更趋开发者同步...

网友评论

      本文标题:同步问题

      本文链接:https://www.haomeiwen.com/subject/dcxtwqtx.html