【发布时间】:2015-03-31 04:21:27
【问题描述】:
我真的不知道这叫什么。
我有一个地图生成器对象,以及一些可以生成我的顶点的东西。我想如果我使用地图大小乘以 4 的数组,我可以提高性能,因为每个图块有 4 个边。
基本上,我想要的是这样的:
array[0] = value.w
array[1] = value.x
array[2] = value.y
array[3] = value.z
array[4] = empty
array[5] = empty
array[6] = empty
array[7] = empty
假设我有一张 32x32 的地图。 32x32 = 1024。1024 块大小为 32x32 的图块。我现在有这个:
int[] myValArray = new int[4096];
for (int i = 0; i < 32; i++)
{
for (int j = 0; j < 32; j++)
{
myValArray[i * j] = 0;
myValArray[i * j + 1] = 1;
myValArray[i * j + 2] = 2;
myValArray[i * j + 3] = 3;
}
}
但是,这不起作用。我究竟做错了什么?在数组中设置偏移量的最佳方法是什么?
我尝试了不同的方法,但都没有奏效。如: [i * j * 1] [i * j * 4] [i * j + 4]
【问题讨论】:
-
为什么要在最里面的循环中分配数组?不应该在两个循环之外分配吗?
-
哦,是的,对不起。我的错!修复它:p
-
另外,如果你想在数组中使用空值,你应该使用 Nullable
数组,如下所示: int?[] myValArray = new int?[4096]; -
我不知道这是什么(如名称)。我需要每个索引偏移 4 的东西。
-
我不明白您为什么对
1-D数组使用嵌套循环。一方面,当i = 0时,您将写入相同的 4 个索引(0、1、2、3)32 次。