有人知道如何在c++中用sfml绘制矢量吗?

Does anyone know how to draw a vector with sfml in c++?

本文关键字:绘制 sfml 中用 c++      更新时间:2023-10-16

肯定是window.draw(vectorname)之类的

期望行为:画一个矩形向量,这里具体来说,3个白色矩形,2个空格,另一个矩形和一个空格

错误:(我认为)我没有画正确

:

window.draw(L0[i]) //the name of the vector is L0

"相关代码":

#include <iostream>
#include <SFML/Graphics.hpp>
#include <vector>
using namespace std;
using namespace sf;
int main()
{
//plan how to draw
int x;
vector<RectangleShape> L0; //0 0001101
for (int i=0; i<7; i++) //for which digit were on in L0
{
    x=0;
    if(i==1 or 2 or 3 or 6) //when to print white
    {
        x=x+8;
        RectangleShape white((120,50));
        RectangleShape white(Vector2f(120,50));
        white.setSize(Vector2f(8, 300)); //w and h
        white.setFillColor(Color(255,255,255));
        white.setPosition(x,50)
        L0[i].push_back(white);
    }
    else //when to print a space
    {
        x=x+8;
    }
}
RenderWindow window(VideoMode(800,600), "SFML Saves!")
while (window.pollEvent((event))
{
while (window.pollEvent(event))
{
    if (event.type==Event::Closed)
        window.close();
}
window.clear();
window.draw(L0[i]);
window.display();
}
return 0;
}

除了注释中指出的糟糕代码之外,您可以简单地迭代向量并绘制东西。

c++ 11

window.clear();
for(const auto& rectangle_shape : L0)
    window.draw(rectangle_shape);
window.display();