帧同步中使技能动画表现平滑的方案

情景

一个技能会以旋转的形式扫过一个区域,技能持续时间内,扫过的区域的敌人受到技能伤害

方案1

  • 服务器每帧给出命令设置技能表现的旋转角度,让客户端技能的表现物体进行旋转或者移动

缺点:

假如服务器是30帧或者更低,那么动画会出现明显的卡顿现象,但是却不是卡顿,只是帧率不够
如果帧率不稳定,会出现真正的卡顿

优点:

简单好做

方案2

  • 服务器只在技能释放时给出旋转的起始角度和动画信息,后续的动画由客户端自行播放

案例:

初始时设置一个起始值initVal,变化速度speed,目标值targetVal
在本地更新函数中改变数据
onLocalUpdate(deltaTime)
curVal += (deltaTime * speed)
if curVal > targetVal
curVal = targetVal
setAnimationWith(currentVal)

缺点:

  • 工作量大

优点:

  • 动画和技能表现平滑,视觉效果好

你可能感兴趣的:(帧同步)