2012-11-28 5 views
4

XNA에 자체 게임 엔진을 작성하고 Android/iOS/Windows 8에 넣을 수 있도록 MonoGame에이 엔진을 포팅하기 시작했습니다. 메인이 새로운 게임 객체를 생성 할 때 참조 예외. 그래서 객체를 할당하는 코드는 다음과 같습니다상속 클래스의 인스턴스를 생성 할 때 NullReferenceException을 발생합니다.

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를 사용하고 있습니다.

+0

과 같아야 경우 NRE는'game.Run()'호출에 발생, 또는이'새로운 게임()'표현에서 호출 된 생성자에 의해 발생되고있다? 'lesaEngine()'생성자에서 에러가 발생하면, 그 생성자의 바디를 게시 할 수 있습니까? – phoog

+0

@phoog가 말한 것에 덧붙여 생성자는 상속되지 않으므로 게임 생성자는 필요할 경우 lesaEngine 생성자를 호출해야합니다. –

+1

@ChrisDunaway 파생 클래스의 생성자가 명시 적으로 다른 생성자를 호출하지 않으면 암시 적으로 기본 클래스의 기본 생성자를 호출합니다. 기본 클래스에 기본 생성자가 없거나 액세스 할 수없는 경우 코드가 컴파일되지 않습니다. – phoog

답변

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 } 
관련 문제