Я пытаюсь сделать квадратную сетку из массива вершин.Так как я не хочу кодировать каждую позицию и цвет вершины, я создал вложенный цикл for и счетчик для каждого индекса вершины.
Я перепробовал множество методов и приемов множества способов и продумал многие изэти петли работают.Самый близкий, который я получил, был этот нижний массив квадратов.
#include "SquareGrid.h"
void SquareGrid::Renderer()
{
sf::VertexArray quads(sf::PrimitiveType::Quads, ((window.x / tiles.x) * 4) + 1);
unsigned int counter = 0;
for (unsigned int i = 0; i < window.x / tiles.x; i++)
{
for (unsigned int j = 0; j < window.y / tiles.y; j++)
{
quads[counter].position = sf::Vector2f(i * tiles.x, j * tiles.y);
quads[counter + 1].position = sf::Vector2f(i * tiles.x + tiles.x, j * tiles.y);
quads[counter + 2].position = sf::Vector2f(i * tiles.x + tiles.x, j * tiles.y + tiles.y);
quads[counter + 3].position = sf::Vector2f(i * tiles.x, j * tiles.y + tiles.y);
quads[counter].color = sf::Color(rand() % 255, rand() % 255, rand() % 255);
quads[counter + 1].color = sf::Color(rand() % 255, rand() % 255, rand() % 255);
quads[counter + 2].color = sf::Color(rand() % 255, rand() % 255, rand() % 255);
quads[counter + 3].color = sf::Color(rand() % 255, rand() % 255, rand() % 255);
}
counter += 4;
}
this->vertices = quads;
}
Я просто хочу квадратную сетку из окна 800 на 800, разделенного на 10 на 10 плиток