대학에서 제 학기 1 과제물을위한 간단한 XNA 게임 개발. 그러나 적의 스프라이트에 대한 드로 루프가있는 벽을 조금 쳤습니다. 내가 알 수있는 한, 적의 모든 스프라이트가 game1.cs 클래스의 목록에 추가되지만 목록의 첫 번째 항목 만 그려집니다.여러 스프라이트를 그리는 XNA 루프가 작동하지 않습니다.
이 방법은 적의 인스턴스를 목록에 추가합니다. 업데이트 메서드에서 스폰가 1 초마다 증가합니다. 이것은 4 마리가 산란 될 때까지 적을 매초마다 순식히 산란시킵니다.
public void LoadEnemies()
{
int randX = rand.Next(0, 1000);
int randY = rand.Next(0, 500);
if (spawn >= 1)
{
spawn = 0;
if (enemyList.Count() < 4)
{
enemyList.Add(new NM_Enemy(Content.Load<Texture2D>("Wisp1"), new Vector2(randX, randY)));
enemyList.Add(new NM_Enemy(Content.Load<Texture2D>("Wisp2"), new Vector2(randX, randY)));
enemyList.Add(new NM_Enemy(Content.Load<Texture2D>("Wisp3"), new Vector2(randX, randY)));
enemyList.Add(new NM_Enemy(Content.Load<Texture2D>("Wisp4"), new Vector2(randX, randY)));
}
}
//Checks if enemies in the list have left the level bounds
for (int i = 0; i < enemyList.Count; i++)
{
if (!enemyList[i].isVisible)
{
enemyList.RemoveAt(i);
i--;
}
}
}
그리기 방법
foreach (NM_Enemy enemy in enemyList)
{
enemy.Draw(gameTime, spriteBatch);
}
업데이트 방법
foreach (NM_Enemy enemy in enemyList)
{
enemy.Update(gameTime);
}
수행 할 작업 : 디버거를 사용하십시오. Visual Studio를 사용하고 계신 것 같군, 그렇지? 줄을 두 번 클릭하여 중단 점을 설정합니다. 나는 내부에서 당신이 그릴 방법을 그리기 때문에리스트에있는 것이 무엇인지 그리고 어떤 순간에 그려지는 것을 볼 수 있습니다. 디버깅을 시작하려면 F5 (또는 맨 위에있는 디버그 버튼)을 누릅니다. –