我目前正在编写俄罗斯方块应用程序。我为我的石头使用了一个多维整数数组,它表示它们在多维面板字段 (int[row][colum]) 上的位置。
当一块石头向下移动时,我现在正处于我想要更新我的字段颜色的地方。我不想循环所有字段和所有俄罗斯方块,我只想更新当前的石头,所以我为最后一个位置添加了一个变量。但是我在设置这个变量时遇到了一些问题!
我现在的问题是,为什么会这样:
public void moveDown()
{
for (int i = 0; i < location.Length; i++)
{
last_location[i][0] = location[i][0];
last_location[i][1] = location[i][1];
location[i][0] += 1;
}
}
但这不会:
public void moveDown()
{
last_location = location;
for (int i = 0; i < location.Length; i++)
{
location[i][0] += 1;
}
//last_location got also updated??
}
这里的问题是,在循环之后, last_location 具有与 location 变量完全相同的值,之后会发生变化!为什么?提前致谢!