2011-12-05 37 views
2

我想在XNA中構建引擎,主要用於2D RPG。起初,我開始抽象出一些類並構建了一個包裝了Vector2和Texture2D的Sprite類,並嘗試從Sprite類的構造函數中加載內容。但是,這並沒有奏效。現在看來,我必須加載Game類的LoadContent方法中的所有精靈。有沒有辦法解決?如果可能,我想將實際的遊戲內容與引擎的內部工作分開。構建2D XNA遊戲引擎

回答

2

是的,您可以將ContentManager作爲參數傳遞給constructor,以便您可以在課堂上使用它。例如

public class MyClass 
{ 
    ContentManager content; 
    Texture2D sprite; 

    public MyClass(ContentManager content) 
    { 
     this.content = content; 
    } 

    public void LoadSprite(string filename) 
    { 
     sprite = this.content.Load<Texture2D>(filename); 
    } 
} 

public class Game1 
{ 
    ContentManager content; 

    public void LoadContent() 
    { 
     MyClass myclass = new MyClass(content); 
    } 

} 
+0

我必須從遊戲類中傳遞它嗎? – zeboidlund

+0

是的。我已經修改了我的答案來證明這一點。 –