Рисование прямоугольников из списка - PullRequest
0 голосов
/ 09 марта 2020

Я пытаюсь создать несколько базовых c прямоугольников на моей карте.

Это мой класс MapBounderies:

public int boundY, boundX, boundWidth, boundLength;
    public Texture2D rectTexture;
    public Rectangle boundRectangle;

    List<MapBounderies> boundsList = new List<MapBounderies>();

    public MapBounderies(Rectangle bRectangle, int intX, int intY, int intWidth, int intLength)
    {
        boundY = intY;
        boundX = intX;
        boundWidth = intWidth;
        boundLength = intLength;
    }

    public void Load(ContentManager Content)
    {
        rectTexture = Content.Load<Texture2D>("black colour");
    }

    public void AddToList(SpriteBatch spriteBatch)
    {
        boundsList.Add(new MapBounderies(new Rectangle(), 100, 100, 100, 100));
    }

    public void Draw(SpriteBatch spriteBatch)
    {
        foreach (MapBounderies boundries in boundsList)
        {
            spriteBatch.Draw(rectTexture, new Rectangle(boundries.boundX, boundries.boundY, boundries.boundWidth, boundries.boundLength), Color.White);
        }
    }

И это ошибка, которую я получаю в своей основной игровой код, когда я пытаюсь создать новый "MapBounderies":

MapBounderies mapBounderies = new MapBounderies();

Не указан аргумент, соответствующий необходимому формальному параметру 'bRectangle' из 'MapBounderies.MapBounderies (Rectangle, int, int, int , int) '

Я новичок в xna, и любая помощь будет оценена.

1 Ответ

1 голос
/ 09 марта 2020

И это ошибка, которую я получаю в коде своей основной игры, когда пытаюсь создать новый "MapBounderies"

Не задан аргумент, соответствующий требуемому формальному параметру 'bRectangle' из 'MapBounderies.MapBounderies (Rectangle, int, int, int, int)'


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

 public MapBounderies(Rectangle bRectangle, int intX, int intY, int intWidth, int intLength)

Как видите, она принимает 5 параметров, и у вас нет другого пустого. Для исправления просто создайте другой конструктор без параметров.

 public MapBoundaries(){}

Теперь вы можете создать экземпляр MapBoundaries, который не принимает никаких параметров.

 MapBounderies mapBounderies = new MapBounderies();
...