Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 通过for循环将矩形添加到列表中,然后将其绘制到屏幕上_C#_List_Xna - Fatal编程技术网

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

C# 通过for循环将矩形添加到列表中,然后将其绘制到屏幕上,c#,list,xna,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+xCh

我正在使用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;
}
然后在draw方法中,我使用foreach循环来绘制以下各项:

foreach (Rectangle rect in rectList)
{
    spriteBatch.Draw(block, rect,  Color.White);
}
当我运行这段代码时,没有任何绘图,我不知道为什么。完整代码可在上找到

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

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

通过使用for循环,可以重复运行语句或语句块,直到指定表达式的计算结果为false

for循环的意思是:从0开始,在i等于10时执行以下操作。这永远是错误的。 您应改为使用:

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

通过使用for循环,可以重复运行语句或语句块,直到指定表达式的计算结果为false

你的for循环是这样的:从0开始,在i等于10时执行以下操作。这将始终是错误的。 您应改为使用:

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

通过使用for循环,可以重复运行语句或语句块,直到指定表达式的计算结果为false

你的for循环是这样的:从0开始,在i等于10时执行以下操作。这将始终是错误的。 您应改为使用:

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

通过使用for循环,可以重复运行语句或语句块,直到指定表达式的计算结果为false

你的for循环是这样的:从0开始,在i等于10时执行以下操作。这将始终是错误的。 您应改为使用:

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

for(int i=0;i rectlist在哪里声明?如果我必须猜测,您将这些矩形绘制到spritebatch,但从未将批绘制到屏幕。这是一个胡乱猜测。我没有看到特定的绘制调用,绘制spritebatch。我看到的只是调用了.End()。显然是End()至少从我在MSDN上看到的情况来看,这是您所做的。可能您没有在批处理中正确设置选项,以便将其输出到屏幕。或者您正在进行一些看不到的操作。请验证您的parameters@DeanKnight矩形列表是在类的基中声明的(以及其他可用的矩形和纹理)所以这不是问题所在。我检查了参数,它应该以可见的大小在屏幕上绘制。矩形列表声明在哪里?如果我必须猜测,您将这些矩形绘制到spritebatch,但从未将批绘制到屏幕上。这是一个胡乱猜测。我没有看到特定的绘制调用,正在绘制spritebatch。我看到的只是.End()被调用.End()显然是您所做的事情,至少从我在MSDN上看到的情况来看是这样的。可能您没有在批处理中正确设置选项,以便将其输出到屏幕上。或者您正在进行一些看不到的操作。请验证您的parameters@DeanKnightrectList在类的基中声明(以及其他可用的矩形和纹理)所以这不是问题所在。我检查了参数,它应该以可见的大小在屏幕上绘制。矩形列表声明在哪里?如果我必须猜测,您将这些矩形绘制到spritebatch,但从未将批绘制到屏幕上。这是一个胡乱猜测。我没有看到特定的绘制调用,正在绘制spritebatch。我看到的只是.End()被调用.End()显然是您所做的事情,至少从我在MSDN上看到的情况来看是这样的。可能您没有在批处理中正确设置选项,以便将其输出到屏幕上。或者您正在进行一些看不到的操作。请验证您的parameters@DeanKnightrectList在类的基中声明(以及其他可用的矩形和纹理)所以这不是问题所在。我检查了参数,它应该以可见的大小在屏幕上绘制。矩形列表声明在哪里?如果我必须猜测,您将这些矩形绘制到spritebatch,但从未将批绘制到屏幕上。这是一个胡乱猜测。我没有看到特定的绘制调用,正在绘制spritebatch。我看到的只是.End()被调用.End()显然是您所做的事情,至少从我在MSDN上看到的情况来看是这样的。可能您没有在批处理中正确设置选项,以便将其输出到屏幕上。或者您正在进行一些看不到的操作。请验证您的parameters@DeanKnightrectList在类的基中声明(以及其他可以工作的矩形和纹理)所以这不是问题。我检查了参数,它应该以可见的大小绘制在屏幕上。谢谢!这非常有帮助:)不客气:)还请注意放置我谢谢!这非常有帮助:)不客气:)也请注意放置我谢谢!这非常有帮助:)不客气:)还请注意,放我谢谢你!这非常有帮助:)不客气:)还请注意,放我