将Texture2D指定给现有的Texture2D

时间:2010-10-12 08:55:38

标签: c# xna texture2d

我目前正在使用C#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;

但是当我尝试在等Draw中使用texCurrentDisc时,我收到以下错误: 此方法不接受此参数的null。 参数名称:纹理。 texCurrentDisc只是初始化为: Texture2D texCurrentDisc;

2 个答案:

答案 0 :(得分:1)

这只是代码中的一个错误,在它应该绘制它之前,纹理被初始化太晚了。

答案 1 :(得分:0)

可以使用“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");