добавление фона в моногам не работает - PullRequest
0 голосов
/ 11 января 2020

Я просто хочу добавить фоновое изображение в моём главном меню c#. У меня уже есть главное меню с кнопками и рабочая игра. Просто фон отсутствует. Это часть моего кода:

public void LoadAssets()
{
    background = ScreenManager.Texture("background");
    [...] //unimportant stuff for this problem
}

 public void Draw(GameTime gameTime)
{
    SpriteBatch spriteBatch= new SpriteBatch();
    spriteBatch.Begin();
    spriteBatch.Draw(background, new Rectangle(0, 0, 800, 480), Color.White);
    spriteBatch.End();

    foreach (var button in mButtons) 
    { 
    button.Draw(ScreenManager.mSprites);
    }
}

Я получаю следующую ошибку CS7036 C# Не указан аргумент, соответствующий необходимому формальному параметру "graphicsDevice" из "SpriteBatch.SpriteBatch (GraphicsDevice) .

Я включил изображение в содержание. Я не знаю, где моя ошибка. Спасибо за помощь!

1 Ответ

2 голосов
/ 14 января 2020

Во-первых, вы НЕ создаете новый экземпляр SpriteBatch при каждом вызове отрисовки. Это было бы как 60 новых экземпляров в секунду (при 60 кадрах в секунду)

Вместо этого вы создаете его в своем методе LoadContent () и используете его полностью в своем методе Draw ():

protected override void LoadContent()
{
    spriteBatch = new SpriteBatch(GraphicsDevice);
    [...]
}

Во-вторых, GraphicsDevice определенно доступен в вашем розыгрыше при условии, что вы ничего не испортили;)

...