如何在XNA中的随机位置绘制50个相同的精灵?

时间:2012-03-14 20:56:14

标签: random xna sprite texture2d

我目前正在开展一个学校项目,错过了一个课程,教师在没有大量代码的情况下解释了如何做到这一点。

这是作业:

创建一个XNA应用程序,显示50个动画精灵向下加速。当精灵击中窗口底部时,使其反弹。在随机位置生成每个精灵,使精灵始终完全在窗口中。将随机位置的Y分量限制在0到300之间。最后,按下空格键,使精灵重置为原始位置。

这是一个示例图像的链接,rep不足以插入图像

http://hypergrade.com/grader/file_download.php?id=132

我有一个精灵绘制和动画,我只需要一些关于为同一个Texture2D随机生成位置的指导。

1 个答案:

答案 0 :(得分:0)

你应该使用Random class。

 // Make one instance of random, the seed is the milliseconds, other way random always returns the same sequence of random numbers.
 static readonly Random rnd = new Random(DateTime.Nom.Milliseconds);

 List<Sprite> Sprites = new List<Sprite>(50); 
 public void Update()
 {
      //Add new sprites with a 90% or probability 
      if (Sprites.Count<50 && rnd.Next(100) > 90)
      {
          Sprite sprite = new Sprite();

          // This X calculation makes the sprite not to get out of the screen at both sides
          sprite.Pos.X = (float) ( (0.1f + 0.8f * rnd.NextDouble()) * GraphicsDevice.Viewport.Width);
          sprite.Pos.Y = (float) ( rnd.NextDouble() * 300 );

          Sprites.Add(Sprite);
      }
 }

当然de Sprite类取决于你.. :)