2012-03-14 5 views
1

В настоящее время я работаю над школьным проектом и пропустил класс, где инструктор объяснил, как это сделать без большого количества кода.Как я могу нарисовать 50 из того же спрайта в случайных местах в XNA?

Вот задание:

Создать приложение XNA показывает 50 анимированных спрайтов ускоряющие вниз. Когда спрайт попадает в нижнюю часть окна, сделайте его отскоком. Создайте каждый спрайт в случайном месте, чтобы спрайт всегда находился полностью в окне. Ограничьте Y-компонент случайного местоположения между 0 и 300. Наконец, сделайте так, чтобы спрайты сбрасывались в исходное положение после нажатия пробела.

Это ссылка на пример изображения, репутация не достаточно высок для вставки изображений

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

Я один спрайт нарисованы и анимированы, мне просто нужно некоторое руководство по случайным порождающих местах для той же Texture2D.

ответ

0

вы должны использовать случайный класс.

// 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); 
     } 
} 

Конечно класс от Sprite зависит от вас .. :)