我正在使用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);
答案 0 :(得分:3)
来自MSDN:
通过使用for循环,您可以重复运行语句或语句块,直到指定的表达式求值为false。
你的for循环说:从0开始,当i等于10时执行以下操作。这将始终为false。 你应该使用:
for(int i = 0; i <= 10; i++)
{
// your code here
}