2016-12-05 2 views
0

Я недавно попал в C# с XNA и просто перешел на MonoGame, так как я читал, что XNA больше не поддерживается. С учетом сказанного я столкнулся с проблемой в MonoGame, которую у меня не было с XNA при попытке сделать метод Load() для класса Sprite в моей программе. Способ я использовал, чтобы сделать это в XNA выглядит следующим образом:Класс MonoGame ContentManager?

public void Load(ContentManager content) 
{ 
    content.Load<Texture2D>(AssetName); 
} 

Теперь проблема у меня с MonoGame, что я не могу ссылаться на ContentManager в моем классе Sprite. Класс имеет все «используя Microsoft.Xna.Framework», что мой класс Game1, и ничего в моем коде не является статическим, поэтому я не понимаю, почему я не могу ссылаться на ContentManager, поскольку он не распознается, когда я пытаюсь его поместить Загрузка(). Есть ли другой способ сделать это в MonoGame, или я не ссылаюсь на него правильно?

ответ

0

Предполагая, что вы ссылались на пакет MonoGame.Framework.dll или NuGet, в коде нет ничего особенного. Он должен выглядеть примерно так:

using Microsoft.Xna.Framework.Content; 
using Microsoft.Xna.Framework.Graphics; 

namespace YourGameProject 
{ 
    public class Sprite 
    { 
     public string AssetName { get; set; } 

     public void Load(ContentManager content) 
     { 
      content.Load<Texture2D>(AssetName); 
     } 
    } 
} 

Я только что написал этот код в своем собственном проекте и скомпилировал его. Если это не работает для вас, должно быть что-то еще не так.

+0

Черт, это в значительной степени то, что я написал, и он просто не распознает ContentManager в моем классе Sprite. Я получу новую копию VS и MonoGame и посмотрю, работает ли она. Спасибо в любом случае! –

1

Хм, я не вижу проблемы сразу, но я постараюсь помочь:

  • Вы, вероятно, пытались правой кнопкой мыши/разрешить уже, но это стоит сказать, это в любом случае.

  • Напоминание, что загрузка контента в моногейме отличается от использования XNA. Вы должны использовать встроенный инструмент конвейера и переносить контент там, не забудьте его создавать каждый раз при загрузке новой текстуры.

  • В Content.RootDirectory не было изменений.

Просто сделайте несколько голов, чтобы быть уверенным, что вы это сделали. и, надеюсь, это тоже поможет вам.

Смежные вопросы