У меня возникли проблемы с брошенным исключением.Ниже приведен метод рисования из цикла XNA.
protected override void Draw(GameTime gameTime)
{
GraphicsDevice.Clear(Color.White);
checkInitialization(); // Makes sure that the graphics loader has been initialized
spriteBatch.Begin();
GameRunner.CurrentGame.GraphicsSystem.Draw(this.spriteBatch);
spriteBatch.End(); // Exception is thrown here
base.Draw(gameTime);
}
А вот метод рисования из графической системы.
public void Draw(SpriteBatch spriteBatch)
{
foreach (GraphicsComponent component in this.components)
{
component.Draw(spriteBatch, this.texture);
}
}
Графические компоненты хранятся в Списке <> в graphicsSystem.Я думаю, что частью проблемы может быть то, что я работаю над проектами.Верхний цикл выше в проекте XNA.Второй метод рисования находится в созданной мной игровой библиотеке.И, наконец, фактическая реализация метода component.draw () находится в третьем проекте, специфичном для текущей игры, над которой я работаю.поле текстуры в графической системе инициализируется из функции Content.Load при построении графической системы.
Я пробовал пару разных вещей.Я переместил spritebatch.begin и spritebatch.end в графическую систему, что все равно привело к исключению.Исключение не появляется, когда список компонентов в графической системе пуст.
Я не уверен, выходит ли загруженная текстура из области видимости, когда область перемещается из одного проекта в другой, но я не думаю, что это должно быть так.У меня также была такая же установка в одном проекте, который работал, однако я реорганизовал несколько объектов, чтобы использовать некоторый код в другом месте.Я не призываю утилизировать где-либо текстуру, которая исчезает, поэтому я даже не уверен, что начну охоту.
Если это не ясно, дайте мне знать, и я постараюсь уточнить.