Загрузка текстуры2D в отдельный класс с использованием С# и xna

Я добавлял кучу текстур в свою игру в xna, поэтому решил создать отдельный класс для загрузки и отрисовки текстур.

это то, что у меня есть до сих пор

using System.Text;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Audio;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.GamerServices;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Media;


namespace Trolls_and_Towers
{

class Textures
{
    //Texture loading

        //Buttons
    public static Texture2D button;


    public static void Load()
    {
        Microsoft.Xna.Framework.Game game = new Microsoft.Xna.Framework.Game();
        button = game.Content.Load<Texture2D>("button");
    }

    public static void Draw()
    {
        Game1.spriteBatch.Draw(button, new Rectangle(20, Game1.screenHeight - 70, 100, 50), Color.White);
    }
}
}

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


person user2255916    schedule 08.04.2013    source источник


Ответы (2)


Всякий раз, когда вы создаете новый проект XNA, внутри конструктора находится следующее:

    public Game1()
    {
        _graphics = new GraphicsDeviceManager(this);
        Content.RootDirectory = "Content";
    }

В качестве альтернативы вы можете сделать следующее:

    class Game
    {

    }

    class TextureManager
    {
        public TextureManager(Game game)
        {

        } 
    }

Обратите внимание, что https://gamedev.stackexchange.com/ будет лучшим местом для вопросов, связанных с разработкой игр.

person aybe    schedule 08.04.2013

Вы также можете вызвать свой метод загрузки из Game1-loadcontent-void и gibe content-Manager в качестве параметра. Затем вы можете вызвать Content.Loaf и в другом классе.

person jalgames    schedule 08.04.2013