创建继承类实例时出现空引用异常(NullReferenceException)

4

我正在使用XNA编写自己的游戏引擎,并开始将其移植到MonoGame上,以便在Android / iOS / Windows 8上使用。但是在创建新游戏对象时,出现了空引用异常。因此,分配对象的代码如下:

    static void Main(string[] args)
    {
        //game g = new game();
        using (game game = new game())
        {
            game.Run();
        }
    }

错误信息如下:

    public lesaEngine()

这是游戏对象的基本构造函数。

继承方式与往常一样。

    class lesaEngine : Microsoft.Xna.Framework.Game
    class game : lesaEngine

不确定这里发生了什么。在正常的XNA下工作正常。我正在使用Visual Studio 2012进行移植。


1
@ChrisDunaway如果派生类的构造函数没有显式调用另一个构造函数,那么它将隐式调用基类的默认构造函数。如果基类中没有默认构造函数,或者不可访问,则代码将无法编译。 - phoog
所以,只是为了澄清一下,上面的代码可以在Windows上的XNA编译和运行吗?但现在你正在哪里编译和运行相同的代码?iOS、Android、Windows 8? - Dominique
我正在使用Windows 8。这是一个MonoGame项目。在正常的Windows环境下,它可以运行和编译得很好。 - Serguei Fedorov
你创建了一个新的Win8 monogame项目吗?如果是这样,入口点应该看起来更像这样: #if !NETFX_CORE using (MyGame game = new MyGame()) { game.Run(); } #endif #if NETFX_CORE var factory = new MonoGame.Framework.GameFrameworkViewSource<MyGame>(); Windows.ApplicationModel.Core.CoreApplication.Run(factory); #endif } - roundcrisis
1
@Miau 看起来像是一个答案。为什么不把它放在答案框里呢? - kristianp
显示剩余4条评论
1个回答

1
如果您创建了一个新的Win8 monogame项目,那么入口点应该更像这样。
#if !NETFX_CORE 
  using (MyGame game = new MyGame()) 
  { 
      game.Run();
  } 
#endif 
#if NETFX_CORE 
  var factory = newMonoGame.Framework.GameFrameworkViewSource<MyGame>();
  Windows.ApplicationModel.Core.CoreApplication.Run(factory); 
#endif } 

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接