相关疑难解决方法(0)

"橡皮筋"会解决多人插值口吃问题吗?

我用UDP编写了多人Pong.我正在使用插值和外推,以便在客户端上创建平滑的效果.

有用.然而,球中有一些不断的口吃.每次收到新数据包时它会向前跳一小部分.它看起来有点滞后,但它是可玩的.

必须有一种方法让游戏看起来更顺畅.我读过有关橡皮筋的文章.离开这里最好的方法是什么?

我希望能够很好地回答我的问题的人会找到它.

更新

根据Ivan的要求,这是ping时间的图表.但是,我确实认为客户端平滑代码中存在问题.

在此输入图像描述

java networking interpolation physics multiplayer

12
推荐指数
1
解决办法
358
查看次数

客户端 - 服务器多人游戏(MMO)游戏中的运动"算法"?

我一直在写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)

sockets animation multiplayer

8
推荐指数
1
解决办法
1万
查看次数