从另一个class.XNA加载纹理

时间:2011-09-03 18:32:18

标签: c# xna

我遇到以下问题: 我想从我的播放器类中加载我的纹理。 所以我将在我的播放器类中执行以下操作:

   public void Load(ContentManager Content)
    {
        Content.Load<Texture2D>("Images/pong");
    }

我将在我的主要课程中这样做;

MyPlayer.Load(Content);
        MyPlayer = new Player(new Vector2(500, 700), Bat,new Vector2(5,5),new Vector2(Bat.Width / 2,Bat.Height/2),graphics);

但它说我必须先使用new关键字才能使用方法(我明白了)。我该怎么做才能解决这个问题,并从另一个类中正确加载纹理?

2 个答案:

答案 0 :(得分:0)

只需交换2条指令并将纹理保存在某处(您正在加载它但不分配给任何变量):

MyPlayer = new Player(new Vector2(500, 700), Bat,new Vector2(5,5),new Vector2(Bat.Width / 2,Bat.Height/2),graphics);
playerTexture = MyPlayer.Load(Content);

...

public Texture2D Load(ContentManager Content)
{
    return Content.Load<Texture2D>("Images/pong");
}

答案 1 :(得分:0)

什么是“蝙蝠”?此外,您必须先调用MyPlayer = new Player(...),然后调用MyPlayer.Load()。

我建议做这样的事情:

MyPlayer = new Player(POSITION, Content.Load<Texture2D>("PathWhereBatIs"), new Vector2(5,5),graphics);

然后在Player构造函数中获取Bat-texture的原点:

public Player(Vector pos, Texture2D tex, Vector2 ??, GraphicsDevice device)
{
    Vector2 Origin = new Vector2(tex.Width / 2f, tex.Height / 2f);

    ...
}