序列化:
bool[] tempArray = new bool[MapWidth * MapHeight];
for (int i = 0; i < MapWidth; i++)
{
for (int ii = 0; ii < MapHeight; ii++)
{
tempArray[i * ii] = mapSolid[i, ii];
}
}
BitArray bits = new BitArray(tempArray);
byte[] bytes = new byte[32 * MapWidth];
bits.CopyTo(bytes, 0);
bin.Serialize(stream, Convert.ToBase64String(bytes));
反序列化:
byte[] bytes = new byte[255 * 255];
bytes=Convert.FromBase64String((string)bin.Deserialize(stream));
//mapSolid = ;
MapWidth = (int)bin.Deserialize(stream);
MapHeight = (int)bin.Deserialize(stream);
BitArray bits = new BitArray(bytes);
bool[] bytestemp = new bool[255*265];
bits.CopyTo(bytestemp, 0);
for (int i = 0; i < MapWidth; i++)
{
for (int ii = 0; ii < MapHeight; ii++)
{
mapSolid[i, ii] = bytestemp[i*ii];
}
}
现在一切似乎都没有错误,但地图在反序列化后失去了它的结构。