問題は、エラーの意味はわかりませんが、神の人生にとって何が原因である可能性があるのか理解できません。私は答えを探して多くを探しましたが、私の苦悩に対する解決策は私にはありません。何度も私の障害を克服しようとしましたが、失敗しました。XNA C#content.load <spritefont>オブジェクトリファレンスがオブジェクトのインスタンスに設定されていません
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
}
}
アイブ氏が削除: Game1はAbstaktという名前の私のクラスとの事を実行して行います。今、私はここで問題が来るあなたは平和のうちに私の脳の休息を助けるかもしれない:)
を、悟りを期待してあなたに見て重要ではなかったので、見やすくなりました。 オブジェクト参照がオブジェクトのインスタンスに設定されていません。
ご協力いただきありがとうございます。
+1、説明されたメッセージ。 @ user1244948:あなたのデバッガを少し使い方を学びたいと思います。ここでクラッシュすると、変数の上にマウスを置くと、現在の状態を確認できます。 「コンテンツ」の上にマウスを置くだけで、問題がその場で示されていました。 –
ありがとうございました、はい、それは問題でした。私は値を取得する前にそれを私のGame1クラスを使用しました:) 私はこのようなコードの別の駒で同じproblmeを打つが、pPosition = new Vector2((graphics.PreferredBackBufferWidth - pTexture.Width)/ 2、(graphics.PreferredBackBufferHeight - pTexture.Height)/ 2); 私のLoadContentメソッドでは、それを解決しようとしていますが...私は道に沿って一歩先を進んでくれてありがとう:D – user1344948
@ john mcdonaldのアドバイスに従い、デバッガを使うべきです...そして、ゲームコンストラクタ... GraphicsDevice.Viewport.Width/Heightを代わりに使用し、pTextureがnullでないことを確認してください;) – Blau