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

本文关键字:电脑 游戏 2D 朋友 XNA | 更新日期: 2023-09-27 18:15:45

我用c#和lidgren做了一个简单的网络xna游戏。但是对象的速度在朋友的电脑上是不同的——窗口的分辨率是一样的,fps是一样的(都是60),应用程序是一样的,但是他的性格因为某种原因变慢了。一段时间内,他的速度和我的速度相等,但随后又减慢了。其他朋友的速度和我一样快。有什么问题吗?程序根据fps调整移动,所以fps可能没有问题。

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

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

程序根据fps

调整移动
一般来说,最好将动画视为自上次更新以来经过的函数,而不是每秒帧数。这样,无论FPS是固定还是可变更新,动画都将花费相同的真实世界时间来完成。

移动增量应该考虑自上次游戏更新以来经过的时间而不是最后/当前FPS

    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;
        .
        .
        .

你说你要用lindgren来制作多人游戏?也许这是由于延迟造成的。尝试在局域网内的两台计算机上检查,看看是否解决了问题。

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