增加列表错误中的变量

时间:2014-06-19 10:39:20

标签: c#

我正在做一个游戏,这是一个游戏。你是矮人,石头落在你身上。出于某种原因,我不能简单地制作宝石。 Y增加。

我正在使用以下循环:

for (int i = 0; i < stones.Count; i++)
{
    stones[i].y++;
    PrintOnPosition(stones[i].x, stones[i].y, stones[i].c, stones[i].color);
}

2 个答案:

答案 0 :(得分:1)

推测 Stone类型(假设有一个具有此类名称的类型)是struct,因此值类型。以这种方式进行增量,只需增加值的副本,而不是您感兴趣的实际值。

有很多方法可以解决这个问题,例如:

将方法MoveDown添加到struct:

public struct Stone 
{
    int y = 0; 

    public void MoveDown() {
       y++;
    }
}

所以你的代码可能如下所示:

for (int i = 0; i < stones.Count; i++)
{
    stones[i].MoveDown();
    PrintOnPosition(stones[i].x, stones[i].y, stones[i].c, stones[i].color);
}

答案 1 :(得分:0)

你试过这样做吗?

stones[i].y += 1;