1.帧同步介绍
什么是帧同步?从字面意义上来看,肯定就是每帧的数据完全同步,即叫帧同步。
当然,都说了只是从字面意义上来看,所以他并非是完全正确。
帧同步是前后端同步数据以及保证多客户端帧数相同的一种手段,帧同步真正的核心并非是客户端与客户端之间帧数的同步。帧数同步只是帧同步的基础,最终导致多个客户端是否同步的罪魁祸首是数据同步。所以帧同步必须要做到多端数据计算完全一致性。即一个输入进来,服务端和客户端所计算出来的结果完全一致。哪怕是十个百个Android、IOS设备,在同一个输入的情况下,都等得到相同的输出。这才是帧同步真正的核心。最终也应了那句话:相同的输入+相同的时机=相同的输出。而相同的时机,则就是客户端与客户端帧间隔的同步。
2.帧同步实现流程
3.帧同步不同步的罪魁祸首
帧同步最大的难题不是帧数的同步,而是如何在不同的平台保证数据同步的一致性。
这里就衍生出一个问题了。
那么为什么会出现数据不同步的问题呢,原因呢?
这里博主要举个栗子:
现在有这么两组数据需要客户端与服务端进行计算,并校验结果是否一致。
- 1*1=?
- 1.48392*1.23773=?
这时候可以拿出计算器计算一下,1 * 1=1,而1.48392 * 1.23773则等于1.8366923016。当然如果你计算的和博主的不一样,那么就已经出现不同步的问题了。这里肯定就有人说了,那我直接强转int不就行了?方法是肯定的,答案是否定的。转成int要什么时候转?算之前转就是1*1=1,算之后转1.8366923016四舍五入就是2。一个计算竟然会有