Назначение Texture2D существующему Texture2D

В настоящее время я возился с С# XNA 4.0, но у меня возникли проблемы с назначением Texture2D существующему Texture2D. Пример кода показан ниже:

    protected override void LoadContent()
    {
        spriteBatch = new SpriteBatch(GraphicsDevice);

        texDisc48 = Content.Load<Texture2D>("textures/disc_24");
        texDisc48 = Content.Load<Texture2D>("textures/disc_48");
        texDisc96 = Content.Load<Texture2D>("textures/disc_96");
    } 
// Random place in the code
texCurrentDisc = texDisc96;

Но когда я пытаюсь использовать texCurrentDisc в etc Draw, я получаю следующую ошибку: Этот метод не принимает null для этого параметра. Имя параметра: текстура. texCurrentDisc просто инициализируется как: Texture2D texCurrentDisc;


person Basic    schedule 12.10.2010    source источник
comment
Вы уверены, что назначаете его правильно в нужное время? Есть ли ссылка на ту же текстуру в texCurrentDisc, когда вы вызываете Draw?   -  person Euphoric    schedule 12.10.2010


Ответы (2)


Это была просто ошибка в коде, текстура была инициализирована слишком поздно, прежде чем она должна была ее отрисовать.

person Basic    schedule 09.11.2010

Можете ли вы загрузить текстуру, используя "textures/disc_96"? Я думал, что нужно использовать что-то вроде "textures\disc_96". Также вы назначаете texDisc48 дважды. Так что, возможно, попробуйте:

    texDisc24 = Content.Load<Texture2D>("textures\\disc_24");
    texDisc48 = Content.Load<Texture2D>("textures\\disc_48");
    texDisc96 = Content.Load<Texture2D>("textures\\disc_96");
person ShannonG    schedule 12.10.2010