通过for循环将矩形添加到列表中,然后将它们绘制到屏幕上

时间:2014-02-09 04:19:41

标签: c# list xna

我正在使用C#和XNA构建突破的基本克隆。除了尝试创建和绘制块到屏幕时,所有代码似乎都运行良好。

在LoadContent()方法中,我使用了for循环,我尝试将10个矩形添加到矩形列表(仅用于测试),并改变X和Y值。

int xChange = 0;
int yChange = 0;
//loop iterates 10 times as a test
for (int i = 0; i == 10; i++)
{
    rectList.Add(new Rectangle(100+xChange, 200+ yChange, 40, 80));
    xChange += 100;
    yChange += 50;
}

然后在绘制方法中,我使用foreach循环绘制每一个:

foreach (Rectangle rect in rectList)
{
    spriteBatch.Draw(block, rect,  Color.White);
}

当我运行此代码时,没有任何内容,我不确定为什么。完整代码可在http://pastebin.com/TNbzgUqn找到。

编辑:通过手动添加一个矩形(不是在循环中)我得到一个矩形来绘制。这将其缩小到for循环,其中矩形被添加到列表中。

//The code below draws, the code above does not
Rectangle test1 = new Rectangle(200, 200, 40, 80);
rectList.Add(test1);

1 个答案:

答案 0 :(得分:3)

来自MSDN:

通过使用for循环,您可以重复运行语句或语句块,直到指定的表达式求值为false。

你的for循环说:从0开始,当i等于10时执行以下操作。这将始终为false。 你应该使用:

for(int i = 0; i <= 10; i++)
{
 // your code here
}