我正在尝试绘制一个我在类中定义的形状。 我将这个类放在一个向量中,并创建一个for循环,然后我通过向量并调用它的draw函数。 但是我只绘制了我添加到矢量中的类的许多形状之一。 在我的游戏循环中,我使用for循环
#include <SFML/Graphics.hpp>
int main(){
RenderWindow window{ { 800, 600}, "game" };
window.setFramerateLimit(60);
vector<Block> blocks;
for (int iX = 0; iX < 10; iX++)
for (int iY = 0; iY < 10; iY++)
blocks.emplace_back(iX * 50, iY * 50);
while(true){
for (auto& Block : blocks) {
Block.Draw(window);
}
}
被调用的类看起来像这样。
#include <SFML/Graphics.hpp>
using namespace std;
using namespace sf;
RectangleShape blockshape;
Block::Block(float mX,float mY)
{
blockshape.setPosition(mX, mY);
blockWidht = 30.f;
blockHeight = 60.f;
blockshape.setSize({ blockWidht,blockHeight });
blockshape.setFillColor(Color::Green);
blockshape.setOrigin(blockWidht / 2.f, blockHeight / 2.f);
x = blockshape.getPosition().x;
y = blockshape.getPosition().y;
}
void Block::Draw(RenderWindow& window) {
window.draw(blockshape);
}
我检查了我的矢量是多么充实,它确实显示我的块类中有更多
我希望这足以回答我的问题。