Heey,我一直在寻找很多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
变量的作用吗?如果我想使用不同的类来做这个,我只是做同样但在播放器类,还有动画 - 你如何发送纹理更新数据?对不起,我问的很多..但我还没有发现任何有用的东西:/
提前致谢,如果您需要了解其他信息,请告诉我! :)
答案 0 :(得分:0)
num
变量只是从纹理数组中选择一个始终相同的唯一纹理。假设您有4个纹理,但Key
modulo operator(%
)将获得剩余的7/4
,这将是3.基本上它会将其包裹在金额附近纹理,因为它们必须重复(Ex,Id 4
和Id 8
具有相同的纹理)
现在你可以使用静态纹理,但是你可以使用相同的代码来选择纹理变体。
你的意思是纹理更新数据?比如改变纹理或更新位置?如果改变纹理,纹理是否已知? (例如,可以发送ID /名称,还是数据必须?)