我有一个带滴答功能的计时器:
void CollisionTimer_Tick(object sender, EventArgs e)
{
int j;
angle += 10;
angle %= 360;
int i = angle / 10 - 1;
if (i < 0)
j = 0;
else
j =i % 35;
ObstaclePoints.Insert(j, getPoint(angle));
}
所需的效果是点列表&#39;障碍点&#39;当j在0-35之间迭代时得到36分。
我得到的问题是在前36个滴答之后,j回到0,列表不断添加到我的列表中得到超过36个点。 (即在我的名单中得到72分之后,我又获得了72分,而不是前36分被覆盖)。
为什么会发生这种情况,我该如何解决这个问题?
答案 0 :(得分:3)
List.Insert
不会覆盖指定索引处的项目,但会在此位置插入一个项目。使用数组ObstaclePoints[35]
代替地址,如下面的代码所示:
ObstaclePoints[j] = getPoint(angle);