gpt4 book ai didi

C#:复制二维数组的部分

转载 作者:太空宇宙 更新时间:2023-11-03 22:20:39 24 4
gpt4 key购买 nike

我正在使用基于图 block 的 map 开发客户端-服务器游戏。如果用户更改 map 的可见部分(即向任何方向滚动),我会向服务器查询有关新部分的信息,并提供 X、Y、宽度和高度。

map 信息存储为二维数组

MapTile[,]

(MapTile 是一个简单的结构体)

当客户端请求一个新的部分时,我想从 map 图 block 数组中读取该部分,为此我定义了一个方法

public MapTile[,] GetMapSection(Rectangle area)
{
[... snip validation ...]
MapTile[,] result = new MapTile[area.Width, area.Height];

for (Int32 y = 0; y < area.Height; ++y)
{
for (Int32 x = 0; x < area.Width; ++x)
{
result[x, y] = this.map[x + area.X, y + area.Y];
}
}
return result;
}

是否有更简单(=> 更易于阅读、理解和维护,不一定更快)的方法从数组中获取部分?

最佳答案

不是真的。这似乎是一种明智而简单的方法。 .NET 不提供任何内置方法的原因是,与一维数组不同,存在多种不同的复制/组合多维数组的方法。

您不会真的变得更快,而且我认为它完全可以维护。无论如何看起来都是非常固定的代码。

关于C#:复制二维数组的部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3203955/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com