如何在XNA中通过网络发送图像?

时间:2012-08-17 21:55:45

标签: xna xna-4.0 xbox360

制作随机生成的噪点图像,想知道如何将其发送给其他玩家的可能解决方案。

我知道最好的方法是发送种子,这可能是我将要使用的解决方案,但我很好奇是否有一个很好的方法来通过XNA / C#/ Xbox网络发送图像。

1 个答案:

答案 0 :(得分:1)

您可以通过流技术上对Texture2D进行序列化,并通过网络发送字节数组。然后在另一端反序列化数据。这可能对某些特定图片或自定义地图的专用服务器非常有用,您希望将这些图片传递给所有人,而无需让他们去某处。为了记录,在你的情况下我同意种子是要走的路,如果没有其他原因,因为你很幸运有这个选项,并且发送int比字节数组容易得多。话虽这么说,尝试这样的事情:

Texture2D image = Content.Load<Texture2D>("test"); //Or rather however you ended up making your texture
MemoryStream stream = new MemoryStream();
image.SaveAsJpeg(stream, image.Width, image.Height);
byte[] data = stream.ToArray();

然后,您可以通过网络传输数据并在另一端反序列化。