어떤 이유로 든 수정 한 코드가 제대로 작동하지 않는 것 같습니다. 디버깅 할 때 예외 오류가 없었지만 원래 코드 (목록)와 동일하게 작동하지 않습니다. 즉, 업데이트되지 않는 것입니다. 작동C# 스택이 업데이트되지 않음
내 원래의 코드 (사용 목록) :
여기private List<Gem> gems = new List<Gem>();
private List<Enemy> enemies = new List<Enemy>();
private void UpdateGems(GameTime gameTime)
{
for (int i = 0; i < gems.Count; ++i)
{
Gem gem = gems[i];
gem.Update(gameTime);
if (gem.BoundingCircle.Intersects(Player.BoundingRectangle))
{
gems.RemoveAt(i--);
OnGemCollected(gem, Player);
}
}
}
내 수정 된 코드는 아무튼있는 스택리스트를 교체거야 나는 문제를 일으키는 생각 코드의 영역으로 내려 대상으로 한 올바르게 작동하지 않습니다.
private Stack<Gem> gems = new Stack<Gem>();
private Stack<Enemy> enemies = new Stack<Enemy>();
private void UpdateGems(GameTime gameTime)
{
for (int i = 0; i < gems.Count; ++i)
{
Gem gem = gems.Peek();
gem.Update(gameTime);
if (gem.BoundingCircle.Equals(Player.BoundingRectangle))
{
gems.Pop();
OnGemCollected(gem, Player);
}
}
}
아이디어가 있으십니까?
"올바르게 작동하지 않음"이란 무엇을 의미합니까? –
죄송합니다. 업데이트하지 않는 것 같습니다. – Katie
# 1에는 gem.BoundingCircle.Intersects가 있고 # 2에는 gem.BoundingCircle.Equals가 있습니다. 동일한 결과를 얻는 것 이외에는. – m0s