Поле никогда не назначается и всегда будет иметь значение по умолчанию

-4

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

 public class Game1 : Game
{
public static SpriteBatch spriteBatch;

private GraphicsDeviceManager graphics;
private WreckingBall _wreckingBall;
private MouseHandler _mouse;
private bool _drag;

private List<Brick> _bricks;

Но теперь компилятор говорит, что "Поле" WreckingBall.Game1._bricks "никогда не назначается и всегда будет иметь значение по умолчанию null"

Это мой класс Brick

class Brick : DrawableGameComponent
{
public Texture2D _texture { get; set; }
public Vector2 _position { get; set; }

public Brick(Game game)
: base(game)
{
Game.Components.Add(this);
this._position = _position;
}

protected override void LoadContent()
{
_texture = Game.Content.Load<Texture2D>("Brick");

base.LoadContent();
}

public override void Update(GameTime gameTime)
{
_position = new Vector2(100, 100);

base.Update(gameTime);
}

public override void Draw(GameTime gameTime)
{
Game1.spriteBatch.Draw(_texture, _position, Color.White);

base.Draw(gameTime);
}

}

Кто-нибудь знает, что я делаю неправильно?

спросил(а) 2021-01-25T17:30:06+03:00 4 месяца, 4 недели назад
1
Решение
77

Где-то в вашем коде вам нужно:

_bricks = new List<Brick>();

Хорошее место для него - в конструкторе, но вы даже можете инициализировать список в разделе частных переменных:

private List<Brick> _bricks = new List<Brick>();

ответил(а) 2021-01-25T17:30:06+03:00 4 месяца, 4 недели назад
63

Создайте его в Game:


private List<Brick> _bricks = new List<Brick>();

ответил(а) 2021-01-25T17:30:06+03:00 4 месяца, 4 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема