2012-03-14 8 views
1

현재 학교 프로젝트에 참여 중이며 강사가 방대한 양의 코드없이이 작업을 수행하는 방법을 설명하는 수업을 놓쳤습니다.XNA에서 임의의 위치에 동일한 스프라이트 50 개를 그리려면 어떻게해야합니까?

는 XNA 애플리케이션 하방 가속 50 개 애니메이션 스프라이트 생성 나타낸다 : 여기

가 할당된다. 스프라이트가 창 하단에 닿으면 튀어 나오게하십시오. 스프라이트가 항상 윈도우에 완전히 있도록 임의의 위치에 각 스프라이트를 생성합니다. 무작위 위치의 Y 구성 요소를 0에서 300 사이로 제한하십시오. 마지막으로 스페이스 바를 누르면 스프라이트가 원래 위치로 재설정됩니다.

은, 그냥 무작위로 생성 위치에 대한 몇 가지 지침이 필요 예를 들어 이미지에 대한 링크, 담당자가 삽입 이미지 나는 하나의 스프라이트가 그려 애니메이션 한

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

충분히 높지 않을 것입니다 동일한 Texture2D에 대해.

답변

0

랜덤 클래스를 사용해야합니다. 드 Sprite 클래스는 당신에 따라 달라집니다 물론

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

.. :)

관련 문제