C# Lidgren - 发送位置和玩家状态



嘿,我一直在 Lidgren 上寻找很多,我已经设法获得了一些简单的控制台客户端和服务器,但我在 2D 方面遇到了非常困难......

基本上到目前为止,

我只有基于控制台的应用程序,但我找到了一个使用 Lidgren 的 2D 游戏示例。您打开了一台服务器,然后打开了两个应用程序。它们会自动连接,你可以玩两个窗口,看到角色在另一个屏幕中移动。该项目使用数组来加载纹理,在Draw()方法中,它简单地绘制数组,但使用来自以下值:

foreach (var kvp in positions)
{
   // use player unique identifier to choose an image
   int num = Math.Abs((int)kvp.Key) % textures.Length;`
   // draw player
   spriteBatch.Draw(textures[num], kvp.Value, Color.White);
}

有人可以解释一下num变量的作用吗?如果我想使用不同的类来做到这一点,我会简单地做同样的事情,但在播放器类和动画中 - 你如何发送纹理更新数据?对不起,我问了这么多..但我还没有找到任何真正有帮助的东西:/

提前感谢,如果您需要了解其他内容,请告诉我! :)

> num 变量只是从纹理数组中选择一个唯一的纹理,该纹理将始终相同。假设你有 4 个纹理,但模运算符 (%Key将得到 7/4 的余数,即 3。基本上,它会围绕纹理的数量进行包装,因为它们必须重复(例如,Id 4和Id 8具有相同的纹理)

现在,您可以只使用静态纹理,但可以使用相同的代码来选择纹理变体。

纹理更新数据是什么意思?例如更改纹理或更新位置?如果更改纹理,纹理是否已知?(例如,可以发送 ID/姓名,还是必须发送数据?