我正在使用服务器端的 socket.io (nodejs) 和客户端的easeljs 开发一个多人游戏。到目前为止,它真的很简单,您可以在画布元素上移动一个矩形,并将位置更新发送到服务器,并将位置广播给客户端。流量不是问题,因为只有两个用户可以互相对抗,这由 socket.io 中的房间功能处理。绘图和游戏循环是用easeljs实现的。
我遇到的问题是其他玩家的动作不是很流畅。位置更新确实非常快(足以应对碰撞等),但对于通过服务器获得位置更新的玩家来说当然不是那么顺利。
如何平滑动画?目前我正在创建一个新的 Container 类并更新容器的位置,例如
myContainer = new MyFigure()
on('positionupdate', function(data) {
myContainer.x = data.x
myContainer.y = data.y
});