Я пытался заставить библиотеку xWinForms 3.0 (библиотеку с поддержкой форм в xna) работать с моим проектом C # XNA Game, но я продолжаю сталкиваться с той же проблемой.
Я добавляю ссылку на мой проект, вставляю оператор using, объявляю переменную formCollection и затем пытаюсь ее инициализировать.
Всякий раз, когда я запускаю проект, меня останавливают в этой строке:
formCollection = new FormCollection(this.Window, Services, ref graphics);
Это дает мне ошибку:
Исключение System.NullReferenceException было обработано. Message = "Object
ссылка не установлена на экземпляр объекта. "
Source = "Microsoft.Xna.Framework" StackTrace:
в Microsoft.Xna.Framework.Graphics.VertexShader..ctor (GraphicsDevice
graphicsDevice, Byte [] shaderCode)
в Microsoft.Xna.Framework.Graphics.SpriteBatch.ConstructPlatformData ()
в Microsoft.Xna.Framework.Graphics.SpriteBatch..ctor (GraphicsDevice
GraphicsDevice)
в xWinFormsLib.FormCollection..ctor (окно GameWindow, сервисы IServiceProvider, GraphicsDeviceManager & graphics)
в GameSolution.Game2.LoadContent () в C: \ Users \ Владелец \ Documents \ School \ Year 3 \ Winter \ Soen
390 \ TeamWTF_3 \ SourceCode \ GameSolution \ GameSolution \ Game2.cs: строка 45
в Microsoft.Xna.Framework.Game.Initialize ()
в GameSolution.Game2.Initialize () в C: \ Users \ Владелец \ Documents \ School \ Year 3 \ Winter \ Soen
390 \ TeamWTF_3 \ SourceCode \ GameSolution \ GameSolution \ Game2.cs: строка 37
в Microsoft.Xna.Framework.Game.Run ()
в GameSolution.Program.Main (String [] args) в C: \ Users \ Владелец \ Documents \ School \ Year 3 \ Winter \ Soen
390 \ TeamWTF_3 \ SourceCode \ GameSolution \ GameSolution \ Program.cs: строка 14
InnerException:
В загруженном мною проекте, использующем xWinForms, я вставил следующий код, и он скомпилировался и не запустился.
но когда я помещаю это в свой проект, я получаю ошибку.
Я делаю какую-то глупую ошибку по поводу включения DLL или что-то? Я занимаюсь этим часами и не могу найти ничего, что могло бы вызвать это.
using xWinFormsLib;
public class Game2 : Microsoft.Xna.Framework.Game
{
GraphicsDeviceManager graphics;
SpriteBatch spriteBatch;
FormCollection formCollection;
public Game2()
{
graphics = new GraphicsDeviceManager(this);
Content.RootDirectory = "Content";
}
protected override void Initialize()
{
// TODO: Add your initialization logic here
base.Initialize();
}
protected override void LoadContent()
{
// Create a new SpriteBatch, which can be used to draw textures.
spriteBatch = new SpriteBatch(GraphicsDevice);
formCollection = new FormCollection(this.Window, Services, ref graphics);
}
protected override void Update(GameTime gameTime)
{
base.Update(gameTime);
}
protected override void Draw(GameTime gameTime)
{
base.Draw(gameTime);
}
}
Любая помощь будет принята с благодарностью ._.