美文网首页
移动同步问题

移动同步问题

作者: 李相赫的乐芙兰 | 来源:发表于2018-03-19 19:36 被阅读53次

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

服务器在收到这两个坐标后,首先会根据客户端的起始坐标做一次位置矫正:如果客户端的位置合理,则将服务器的当前坐标设置为客户端的起始坐标。这样做的好处在于,如果服务器与客户端的位置出现了偏差,可以不将玩家往回拉,让玩家有更好的移动体验。但是这样可能被外挂利用,所以位置纠正只是每隔若干秒做一次,而不是每次移动时都做。

做完位置矫正后,服务器会通过a*寻路找到一组路点,沿着路点向目标点移动。并且在每一帧中将坐标更新同步给客户端。

最近遇到一个实际运行中的bug:客户端并不是完全等服务器的坐标同步之后才移动,而是会自己提前自动。但是客户端在摇杆移动时并没有使用a*,而是直接判断目标点是否是可行走区域,如果是则直接移动到目标点。这样就导致当玩家速度很快的时候可以穿过比较薄的阻挡门(门的厚度小于客户端移动一次摇杆的判定距离),当客户端穿墙之后再次发起自动请求时,发给服务器的起始坐标就在墙另一侧了。服务器如果做了位置纠正,就在服务器端也穿过了墙。

解决的办法是,位置纠正时做一次a*寻路判断,若不可达,则将客服端拉回服务器当前坐标

相关文章

  • 移动同步问题

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

  • 大数据架构

    移动计算比移动数据更划算 HDFS--离线数据 数据库同步经常用 Sqoop,日志同步用 Flume,打点采集的数...

  • UG编程10.0同步建模之移动面、删除面、替换面

    ---同步建模之移动面--- 同步建模在NX中的应用广泛,主要对对实体的面进行操作,比如,旋转、对称、移动等等,是...

  • UG10.0同步建模之移动面、删除面、替换面

    ---同步建模之移动面--- 同步建模在NX中的应用广泛,主要对对实体的面进行操作,比如,旋转、对称、移动等等,是...

  • 状态同步游戏的移动手感问题

    首先弱网环境丢包的问题,丢包不可避免,如果用tcp的话,指数退避的算法会更加大延迟,在结合位置同步的特点,位置同步...

  • 同步问题

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

  • 同步问题

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

  • 移动端同步方案

    飞地有用户写作的需求,所以积累了写作和数据同步的技术研究,这是第二篇数据同步,第一篇写作点此进入。 因为产品有草稿...

  • OneNote UWP 同步出现 E4010690 czfzh

    如果频繁移动页面的位置,比如排序之类的。可能会导致出现同步问题,出现错误代码为E4010690 czfzh,这时候...

  • 13. Two Pointer

    两个指针的问题:通过2个指针同步或不同步的移动,得到结果。时间复杂度一般会降低一个数量级。 适用于排好序的情况 8...

网友评论

      本文标题:移动同步问题

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