2013-01-20 1 views
1

Visual C# 2010 및 XNA 4.0을 사용하여 Uno 카드 게임을 개발 중입니다. 배열 요소로 모든 Uno 카드의 108 요소 배열을 만들었습니다.Visual C# 및 XNA에서 스프라이트 배열 복사

이제 게임 시작시 4 명의 플레이어 각각에게 무작위로 7 장의 카드를 할당하고 싶습니다. 그래서 임의 번호를 생성하고 해당 번호의 카드를 플레이어에게 할당합니다.

for (int i = 0; i < 7; i++) 
     { 
      int r = rnd.Next(108); 
      if (vis[r] != 1) //vis[] is an array to checkk visited elements 
      { 

       // u[i] = Content.Load<Texture2D>("toString.Allcards[r]"); 
       u[i]=Content.Load<Texture2D>(ToString("Allcards[r]")); 
      } 

이것은 작동하지 않습니다. 제발 도와주세요.

답변

0

"Allcards [r]"은 Allcards [1] == "Ace of Spades"의 텍스쳐를 가지고 있고 프로젝트에서 Ace of Spades라는 텍스쳐를 가지고 있다고 가정 할 때 아마도 다음과 같이 대신 할 수 있습니다 :

u[i]=Content.Load<Texture2D>(Allcards[r]); 
0
for (int i = 0; i < 7; i++) 
      { 
       int r = rnd.Next(108); 
       if (vis[r] != 1) //vis[] is an array to checkk visited elements 
       { 

        // u[i] = Content.Load<Texture2D>("toString.Allcards[r]"); 
        u[i]=Content.Load<Texture2D>(Allcards[r].ToString()); 
       } 
      } 
0

당신은 Allcards 문자열의 배열이라고 가정 Content.Load<Texture2D>(Allcards[r]);를 원한다. Allcards가 Texture2D 객체의 배열 인 경우 Content.Load은 이미로드 했으므로 불필요합니다. u[i] = Allcards[r]을 사용할 수 있습니다.

그렇다고해서 플레이어에게 텍스처를주고 싶지는 않을 것입니다. 당신은 그들에게 실제 카드를주고 싶어 할 것입니다. ID와 같은 유용한 정보와 함께 Card 클래스를 만들고 텍스처를 할당하는 것이 좋을 것입니다.