我用UDP编写了多人Pong.我正在使用插值和外推,以便在客户端上创建平滑的效果.
有用.然而,球中有一些不断的口吃.每次收到新数据包时它会向前跳一小部分.它看起来有点滞后,但它是可玩的.
必须有一种方法让游戏看起来更顺畅.我读过有关橡皮筋的文章.离开这里最好的方法是什么?
我希望能够很好地回答我的问题的人会找到它.
更新
根据Ivan的要求,这是ping时间的图表.但是,我确实认为客户端平滑代码中存在问题.
我一直在写2D闪存多人游戏和套接字服务器.我对客户端和服务器之间的移动算法的原始计划如下:
我当前对客户端的计算(在服务器中使用相同的数学运算)==>
车削
var newTimeStamp:uint = UtilLib.getTimeStamp(); //set current timeStamp
var rot:uint = Math.round((newTimeStamp - turningTimeStamp) / 1000 * 90); //speed = x degrees turning every 1 second
turningTimeStamp = newTimeStamp; //update timeStamp
if (turningMode == 1) //left
{
movementAngle = fixAngle(movementAngle - rot);
}
else if (turningMode == 2) //right
{
movementAngle = fixAngle(movementAngle + rot);
}
private function fixAngle(angle:int):uint //fixes an angle in degrees (365 -> 5, -5 -> 355, etc.)
{
if (angle > 360) …Run Code Online (Sandbox Code Playgroud)