Я изучаю C ++ и хочу заняться графикой.Я использую SFML и пытаюсь сделать игру со змеями.Я хочу использовать формы прямоугольника и обновлять положение каждого прямоугольника, ссылаясь на массив и фактор 40 (мой размер тайла).Я верю, что получил правильные циклы for, но изо всех сил пытаюсь использовать sf::setPosition
.Это дает мне ошибку преобразования.Вот мой код:
#include <SFML\Graphics.hpp>
int main()
{
int xWindow = 1280; //Divided by 40 pixels, equals to a width of 32 tiles
int yWindow = 720; //Divided by 40 pixels, equals to a height of 18 tiles
float array[32][18] = { 0 };
sf::RenderWindow window(sf::VideoMode(xWindow, yWindow), "Title"); //32 & 18
while (window.isOpen())
{
////////Grid variables/////////
int xFactor = 32;
int yFactor = 18;
int size = 40;
////////Events////////
////////draw////////
window.clear();
for (int i = 0; i <= 31;i++)
{
for (int j = 0; j <= 17; j++)
{
sf::RectangleShape block(sf::Vector2f(size, size));
block.setFillColor(sf::Color::Blue);
block.setPosition(array[i * size][j * (size)]); //ERROR OCCURS HERE: cannot convert argument 1 from 'float' to 'const sf::Vector2f &'
window.draw(block);
}
}
///////Display//////
window.display();
}
}
Я думаю, что setPosition принимает только float или vector в качестве входных данных, но если я не ошибаюсь, вы не можете перемещаться по массиву с чем-либо, кроме целых чисел?
Как настроить такую простую сетку в SFML C ++?
Спасибо за любые ответы!