2011-12-05 161 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

是的。我已经修改了我的答案来证明这一点。 –