【发布时间】:2020-01-17 10:19:23
【问题描述】:
所以我需要绘制一个精灵 5 次,将另一个精灵向前移动一些像素,这样它们就不会堆叠。我的 for 循环不起作用,现在我不知道该怎么做。我还创建了一个英雄类,因为我只需要绘制一次它的精灵。当我运行程序时,它只显示 1 个塔。
int main() {
sf::RenderWindow screen(sf::VideoMode(700, 580), "SFML Demo");
sf::Event event;
int posX = 0, posY = 0;
Image TileSet;
TileSet.loadFromFile("Town.png");
Hero My_Hero("Orc.png");
Texture TowerTexture;
TowerTexture.loadFromImage(TileSet);
Sprite Tower;
Tower.setTexture(TowerTexture);
Tower.setPosition(0, 0);
Tower.setTextureRect(IntRect(383, 96, 145, 280));
while (screen.isOpen()) {
while (screen.pollEvent(event)) {
if (event.type == sf::Event::EventType::Closed)
screen.close();
}
screen.clear();
for (int i = 0; i < 4; ++i) {
screen.draw(Tower);
posX += 40;
Tower.setPosition(posX, posY);
}
My_Hero.MoveHero();
screen.draw(My_Hero.getSprite());
screen.display();
}
}
【问题讨论】:
-
如果您能解释一下究竟是什么不起作用以及您怎么知道它不起作用,那就太好了。
-
改了,抱歉