网络上的2d游戏旋转插值

时间:2016-01-13 14:25:03

标签: networking rotation 2d interpolation

我正在制作一个简单的2D多人游戏,玩家的炮塔面向某个方向(0-360度)

炮塔在改变方向时很慢,因此有两个值:

  • 标题,这是它目前面临的方向
  • desiredHeading,这是它想要面对的方向(玩家输入)

函数moveTurret()每帧调用一次,并将标题增加/减少一定值,因此它会在一段时间后匹配desiredHeading。 ( - >炮塔缓慢移动到所需方向)

由于我的客户端每隔X毫秒通过网络收到更新,我很难顺利渲染这些轮换!

我目前的做法如下:

  • 客户定期收到其他玩家的标题
  • 客户端根据需要为各个玩家设置接收的值
  • 每个帧都为那些玩家调用moveTurret()

我认为客户端会近似旋转,并会平稳地将炮塔渲染到正确的方向,但这根本不起作用,动画来回摆动。

有没有人知道这个问题的简单方法?我发现了一些四元数插值和基于矩阵的算法,但似乎没有一个适合我的方法,因为我只有一个标题值而且我的游戏不使用矩阵计算。

0 个答案:

没有答案