1

现在的问题不是我不知道错误的含义,而是我无法为上帝的生命找出可能是什么原因造成的。我一直在寻找答案,但解决我的痛苦的方法却让我望而却步。我多次试图克服我的障碍,但都失败了。现在我看着你希望开悟,愿你帮助我的大脑安息:)

问题来了:Game1 运行并使用我的名为 Abstakt 的类:

class Abstrakt
{
    public ContentManager content;
    public SpriteBatch spriteBatch;
    public GraphicsDeviceManager graphics;

    MenuComponent menuComponent;
    StartGame startGame;

    public string gameState = "Menu";

    public Abstrakt(SpriteBatch spriteBatch, ContentManager content, GraphicsDeviceManager graphics)
    {
        this.spriteBatch = spriteBatch;
        this.content = content;
        this.graphics = graphics;
    }

    public Abstrakt() { }

    public virtual void Initialize()
    {
        menuComponent = new MenuComponent();
        startGame = new StartGame();

        menuComponent.Initialize();
        startGame.Initialize();
    }

    public virtual void LoadContent()
    {
        menuComponent.LoadContent();
        startGame.LoadContent();
    }
}        






class MenuComponent : Abstrakt
{
    SpriteFont spriteFont;

    public MenuComponent() { }

    public override void LoadContent()
    {
        spriteFont = content.Load<SpriteFont>("GameFont"); <--Here the problem appears
    }
}

我已经删除了不重要的代码,因此更容易查看。问题是:对象引用未设置为对象的实例。

感谢您的任何帮助和建议。

4

1 回答 1

3

我认为您没有初始化“内容”变量。

如果您使用默认的无参数构造函数实例化 MenuComponent,则不会分配内容..因此它将等于 null...

于 2012-04-19T20:53:23.750 回答