Object reference not set to an instance of an object

Status
Niet open voor verdere reacties.

Paulh9

Gebruiker
Lid geworden
2 nov 2009
Berichten
31
Hey,

Ik probeer een texture uit de class ContentManager te laden.
Alleen ik krijg steeds deze error.
Object reference not set to an instance of an object.
De error komt op het dik dikgedrukte stuk in Spaceship.

Wij zou mij kunnen helpen hiermee?

ContentManager
Code:
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework.Audio;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;

namespace Space_wars
{
    static class ContentManager
    {
        public enum AudioFiles
        {
            bounce
        }

        public enum TextureFiles
        {
            spaceship,
            chure,
            sinode,
            thege,
            bullet,
            laser,
            rocket,
            guidedRocket
        }

        public static Dictionary<AudioFiles, SoundEffect> Audio { get; set; }
        public static Dictionary<TextureFiles, Texture2D> textures { get; set; }

        public static void LoadContent(Game game)
        {
     
            Audio = new Dictionary<AudioFiles, SoundEffect>();
            textures = new Dictionary<TextureFiles, Texture2D>();

            textures.Add(TextureFiles.spaceship, game.Content.Load<Texture2D>("Spaceship"));

            Audio.Add(AudioFiles.bounce, game.Content.Load<SoundEffect>("RocketSound"));
        }
    }
}

Spaceship
Code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Graphics;

namespace Space_wars
{
    class Spaceship : DrawableGameComponent
    {
        public Texture2D Texture { get; set; }
        public Vector2 Position { get; set; }
        public int Speed { get; set; }
        public float bulletDelay;
        public List<Weapon> bulletList;
        public int upgrade;

        public Rectangle BoundingBox
        {
            get
            {
                return new Rectangle((int)Position.X, (int)Position.Y, Texture.Width, Texture.Height);
            }
        }

        public Spaceship(Game game) : base(game) {

            // Nieuwe bulletlijst maken
            bulletList = new List<Weapon>();

            // Tijd tussen het schieten van de kogels
            bulletDelay = 100;

           [B] Texture = ContentManager.textures[ContentManager.TextureFiles.spaceship];[/B]
        }

Alvast bedankt!
 
kunt u proberen met breakpoints de oorsprong van de fout te achterhalen?
Ik denk dat er hier wordt gezegd dat er iets niet aan elkaar is gekoppelt, dus bijvoorbeeld bij een Afstandsbediening dat de knopjes niet aan de afstandsbediening vast zitten.
Zoiets haal ik eruit.

Suc6,
Tim
 
Volgens mij roep je nergens de LoadContent methode uit ContentManager aan waardoor de Dictionary textures niet geinstantieeert is en dus null (vandaar null reference exceptie)

Als je nou voor de regel waar het fout gaat de loadContent aanroept?

Code:
ContentManager.LoadContent(game);
 Texture = ContentManager.textures[ContentManager.TextureFiles.spaceship];
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan