2011-09-03 106 views
1

我遇到以下問題: 我想從我的玩家類加載我的紋理。 所以我會盡我的播放器類在以下幾點:從另一個類加載紋理.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); 

但它說,我必須使用新的關鍵字,纔可以使用方法(我明白這一點)。我能做些什麼來解決這個問題,並從另一個類中正確加載紋理?

回答

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"); 
} 
+0

我還沒有真正理解你」請說,請介意給我一個代碼示例嗎? – Joe

+0

@Joe:這裏是 – BlackBear

+0

聽着,「蝙蝠」應該是我的質感。當我試圖編譯代碼時,它會拋出一個異常,並說:你需要使用「new」關鍵字......以及如果構造函數中沒有使用playertexture(這意味着我不能使用它作爲我班的紋理?) – Joe

0

什麼「蝙蝠」是什麼?此外,您必須先調用MyPlayer = new Player(...),然後調用MyPlayer.Load()。

我建議你做這樣的事情:

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

,然後在播放器的構造函數來獲得蝙蝠質感的起源做到這一點:

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

    ... 
}