地图移动逻辑

主要的一些问题

0. 可能会很久没收到,,或者一下子同时受到很多个同步的包

关于坐标滞后导致的一些游戏逻辑问题,比如攻击命中的判定问题等,一般是以服务器数据为判定依据,逻辑判定还是以服务器为主,客户端主要做表现。

1. 插值

关于坐标上报频率,我采取的是每100ms 或是 坐标 或 角度 变动超过一定阈值才上报。

关于插值方案,我选择了最简单的线性插值,感觉效果也够用,网上还有一些其他的插值算法,可能效果会更平滑一些把。

2. 网络延迟

做预测, 在没有收到下一个同步点的时候,客户端自己做一个位移预测,让角色保持位移的状态,客户端简单地认为角色会保持当前的位移方向和速度继续运动(事实上也确实是保持运动状态的情况居多,变化居少)

之前经常发生进行同步的时候,第三方客户端上的角色最终停止的位置会比主客户端多走了几步的问题,这时因为对最后一个同步坐标也做了预测的缘故。 这里我们可以同步的数据包上加一个标记,标记当前点是否为终点,或者主客户端在发送完最后一个坐标之后立马再上报一条角色停止的消息,标记角色当前已停止位移,不需要再做预测。

会有收到最后一个点的时候,角色已经做了预测,并且走超了的情况,这种情况只能按照终点坐标做一个会拉的操作了,或者客户端设定了预测上限,在偏差值不大的情况下允许这种偏差存在也可以。

比如延迟超过500ms的延迟和抖动(500ms相当高啦!)会发生中间的还没来得及同步的坐标点被丢弃

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/337427.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JS栈和堆:数据是如何存储的

JS栈和堆:数据是如何存储的 背景JavaScript 是什么类型的语言JavaScript 的数据类型内存空间栈空间和堆空间再谈闭包 背景 JS有多种数据类型:数字型,字符串型,数组型等,虽然 JavaScript 并不需要直接去管理内存&#…

Windows 2012 R2 单网卡安装 PPTPVP*

环境 1、服务器:Windows Server 2012 R2(虚拟机) 内网IP:10.3.0.233 2、客户端:Windows 11 需求:当客户端通过VPN连接后,只有当访问 10.3.0.0 网段的数据包才走 VPN 通道后,其它…

python 计数器

这个Python脚本定义了一个名为new_counter()的函数,它读取系统时间并将其与存储在文件中的时间进行比较。然后根据比较结果更新存储在另一个文件中的计数器值。如果系统时间与存储的时间匹配,则计数器值增加1。如果系统时间与存储的时间不匹配&#xff0…

软件测试|MySQL CROSS JOIN:交叉连接的详细解析

简介 在 MySQL 数据库中,CROSS JOIN 是一种用于生成两个或多个表的笛卡尔积的连接方法。CROSS JOIN 不需要任何连接条件,它将左表的每一行与右表的每一行进行组合,从而生成一个包含所有可能组合的结果集。本文将详细介绍 MySQL 中的 CROSS J…

SpringMVC 学习博客记录

文章目录 博客记录请求转发和请求包含request.getRequestDispatcher() 源码学习知识点记录 博客记录 Handler、HandlerMapping和HandlerAdapter作用及区别 请求转发和请求包含 request.getRequestDispatcher() getRequestDispatcher()包含两个重要方法,分别是请…

【大数据OLAP引擎】StartRocks存算分离

存算分离的原因 降低存储成本:同样的存储大小对象存储价格只有SSD的1/10,所以号称存储成本降低80%不是吹的。 存算一体到存算分离 存算一体 作为 MPP 数据库的典型代表,StarRocks 3.0 版本之前使用存算一体 (shared-nothing) 架构&#xf…

用Linux的视角来理解缓冲区概念

缓冲区的认识 缓冲区(buffer)是存储数据的临时存储区域。当我们用C语言向文件中写入数据时,数据并不会直接的写到文件中,中途还经过了缓冲区,而我们需要对缓冲区的数据进行刷新,那么数据才算写到文件当中。…

基于JavaWeb+BS架构+SpringBoot+Vue校车调度管理系统的设计和实现

基于JavaWebBS架构SpringBootVue校车调度管理系统的设计和实现 文末获取源码Lun文目录前言主要技术系统设计功能截图订阅经典源码专栏Java项目精品实战案例《500套》 源码获取 文末获取源码 Lun文目录 摘 要 1 Abstract 1 目 录 2 1 绪 论 1 1.1研究背景 1 1.2 研究意义 1 1.…

YOLOv8优化策略:轻量化改进 | MobileNetV3,轻量级骨架首选

🚀🚀🚀本文改进:MobileNetV3的创新点包括:使用自适应瓶颈宽度、借鉴SENet中的Squeeze-and-Excitation机制、引入h-swish激活函数等。 🚀🚀🚀YOLOv8改进专栏:http://t.csdnimg.cn/hGhVK 学姐带你学习YOLOv8,从入门到创新,轻轻松松搞定科研; 1.MobileNetV3介…

牛客字符串

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、pandas是什么?二、使用步骤 1.引入库2.读入数据总结 前言 提示:这里可以添加本文要记录的大概内容: 例如:…

【题解】—— LeetCode一周小结1

1.经营摩天轮的最大利润 题目链接: 1599. 经营摩天轮的最大利润 你正在经营一座摩天轮,该摩天轮共有 4 个座舱 ,每个座舱 最多可以容纳 4 位游客 。你可以 逆时针 轮转座舱,但每次轮转都需要支付一定的运行成本 runningCost 。摩…

【算法每日一练]-dfs (保姆级教程 篇9) #俄罗斯方块 #ABC Puzzle #lnc的工资

目录 今日知识点: 二维图形的状态压缩,存下所有的合法状态然后暴力遍历 dfs的优化剪枝 二项式定理 俄罗斯方块 ABC Puzzle lnc的工资 俄罗斯方块 322D 题意:在4*4方格中分别给出3个俄罗斯方块,问是否可以经过旋转&#xf…