0

嘿,我在 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变量的作用吗?如果我想使用不同的类来做到这一点,我会只是在播放器类和动画中做同样的事情 - 你如何发送纹理更新数据?对不起,我问了这么多..但我还没有找到任何真正有帮助的东西:/

在此先感谢您,如果您需要了解其他信息,请告诉我!:)

4

1 回答 1

0

num变量只是从纹理数组中选择一个唯一的纹理,它总是相同的。假设您有 4 个纹理,但Key运算符( %) 将得到 的余数7/4,即 3。基本上它将围绕纹理的数量进行包装,因为它们必须重复(Ex、Id4和 Id8具有相同的纹理)

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

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

于 2013-11-09T23:06:53.710 回答