C# 试图在屏幕上加载多个小行星

C# 试图在屏幕上加载多个小行星,c#,xna,C#,Xna,我正试图用C#XNA创建一个小行星游戏。 然而,当加载程序时,它只加载一个小行星,而不是我认为在代码中指定的5个小行星 public void LoadContent(ContentManager Content) { // Creating Random Origin Coordinates For Asteroids randX = random.Next(500, 1180); randY = random.Next(500, 98

我正试图用C#XNA创建一个小行星游戏。 然而,当加载程序时,它只加载一个小行星,而不是我认为在代码中指定的5个小行星

 public void LoadContent(ContentManager Content)
    {
        // Creating Random Origin Coordinates For Asteroids
        randX = random.Next(500, 1180);
        randY = random.Next(500, 984);

        // If There Are Less Than 5 Asteroids On The Screen, Create More Until 5 Are Present
        if (asteroidsList.Count() < 5)
        {
            asteroidsList.Add(new Asteroids(Content.Load<Texture2D>("asteroid big"), new Vector2(randX, randY)));
        }
    }
public void LoadContent(ContentManager内容)
{
//为小行星创建随机原点坐标
randX=random.Next(5001180);
randY=random.Next(500984);
//如果屏幕上的小行星少于5颗,则创建更多小行星,直到出现5颗
if(slist.Count()<5)
{
AsterosList.Add(新小行星(Content.Load(“小行星大”),新矢量2(randX,randY));
}
}
在这段代码中,我想我是说如果屏幕上的小行星少于5颗,就在屏幕上添加另一颗小行星。 如果这不是代码所说的,请解释
干杯。

创造小行星的线条

asteroidsList.Add(new Asteroids(Content.Load<Texture2D>("asteroid big"), new Vector2(randX, randY)));
asteroslist.Add(新小行星(Content.Load(“小行星大”),新矢量2(randX,randY));
只执行一次

使用如下循环:

while (asteroidsList.Count() < 5)
{
    randX = random.Next(500, 1180);
    randY = random.Next(500, 984);
    asteroidsList.Add(new Asteroids(Content.Load<Texture2D>("asteroid big"), new Vector2(randX, randY)));
}
while(slist.Count()<5)
{
randX=random.Next(5001180);
randY=random.Next(500984);
AsterosList.Add(新小行星(Content.Load(“小行星大”),新矢量2(randX,randY));
}

编辑:更新了while循环示例以随机定位每个小行星。

谢谢。我想可能是这样的,但当我以前尝试这样做时,我有各种各样的错误,但现在可以了。没问题,很高兴能帮助你。一点免费的建议:你可能想避免硬编码的小行星数量和边界位置中使用的随机。定义一个常数。例如,
private const int MinAsteroids=5
并使用它:
while(asteroslist.Count()
如果将小行星的
Texture2D
分配到循环之外,可能会更有效,否则每次都会从磁盘加载纹理。这并不重要,但当你有100颗小行星时,它会运行得更快。正如@joppiesaus所说的,应该加载一个
私有静态纹理2d小行星精灵,然后进行循环以添加小行星。