我正在做一个游戏,这是一个游戏。你是矮人,石头落在你身上。出于某种原因,我不能简单地制作宝石。 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);
}
答案 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;