C# 试图在屏幕上加载多个小行星
我正试图用C#XNA创建一个小行星游戏。 然而,当加载程序时,它只加载一个小行星,而不是我认为在代码中指定的5个小行星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
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小行星精灵,然后进行循环以添加小行星。