我遇到以下问题: 我想从我的播放器类中加载我的纹理。 所以我将在我的播放器类中执行以下操作:
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关键字才能使用方法(我明白了)。我该怎么做才能解决这个问题,并从另一个类中正确加载纹理?
答案 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);
...
}