XNA 2D游戏 - 在朋友的电脑上表现不同

时间:2015-10-03 12:28:51

标签: c# xna

我使用c#和lidgren制作了一个简单的网络xna游戏。但是在朋友的计算机上物体的速度是不同的 - 窗口的分辨率是相同的,fps是相同的(都是60),应用是相同的,但是他的角色由于某种原因只是慢了。有一段时间他的速度等于我的速度,但随后它再次减速。 其他朋友确实和我一样有同样的速度。可能有什么问题?程序根据fps调整运动,因此fps可能没有问题。

2 个答案:

答案 0 :(得分:0)

没有看到你的代码很难说肯定。

  

程序根据fps调整运动

通常情况下,将动画视为自上次更新以来经过的函数而非每秒帧数通常会更好。这样,无论FPS是修复还是变量更新,动画都将花费相同的实际时间来完成。

移动增量应考虑自上次游戏更新后经过的时间而非上次/当前FPS

e.g。

    public Vector3 Velocity;
    public Vector3 Position;

    public void Update(GameTime gameTime)
    {
        float elapsed = (float)gameTime.ElapsedGameTime.TotalSeconds;

        // Apply acceleration
        Vector3 acceleration = force / Mass;
        Velocity += acceleration * elapsed;

        // Apply psuedo drag
        Velocity *= DragFactor;

        // Apply velocity
        Position += Velocity * elapsed;
        .
        .
        .

答案 1 :(得分:0)

你说你用lindgren制作多人游戏?也许是因为延迟导致的橡皮筋。尝试在局域网上的2台计算机上查看它是否能解决问题。

可能lindgren有不同的设置来指定如何处理同步或预测。