2011-12-05 3 views
2

Я хотел бы построить двигатель в XNA, в первую очередь для 2D-RPG. Сначала я начал абстрагировать некоторые классы и построил класс Sprite, который обернул Vector2 и Texture2D, и попытался загрузить контент из конструктора класса Sprite. Однако это не сработало. Теперь кажется, что я должен загрузить все спрайты в методе LoadContent класса Game. Во всяком случае, вокруг? Я бы хотел отделить фактическое игровое содержимое от внутренней работы двигателя, если это возможно.Построение 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

Да. Я изменил свой ответ, чтобы показать это. –