Я использую SFML с C ++, чтобы попытаться переместить спрайт с определенной текстурой, но он не двигается так, как я хочу.
Я новичок в SFML, я прочитал учебники о перемещении на веб-сайте sfml и посмотрел несколько учебников на Youtube по этому поводу. Материал, который я видел, является либо очень простым, либо достаточно сложным на данный момент (в основном это материал для разработки игр)
#include <SFML/Graphics.hpp>
#include <thread>
#include <chrono>
#include<iostream>
using namespace sf;
using namespace std;
int main()
{
sf::RenderWindow window(sf::VideoMode(600, 600), "test!");
Texture t;
t.loadFromFile("/*texture directory*/");
Sprite s(t);
s.setScale(Vector2f(0.25f, 0.25f));
float temp = 0;
while (window.isOpen())
{
sf::Event event;
while (window.pollEvent(event))
{
if (event.type == sf::Event::Closed)
window.close();
}
window.clear(Color::White);
window.draw(s);
window.display();
s.move(Vector2f(temp, temp));
for (int i = 0; i < 3; i++) {
if (i == 0) {
this_thread::sleep_for(chrono::milliseconds(1000));
temp = 10;
}
else if (i == 1) {
this_thread::sleep_for(chrono::milliseconds(1000));
temp = 20;
}
else {
this_thread::sleep_for(chrono::milliseconds(1000));
temp = -10;
}
}
}
return 0;
}
Я ожидаю, что спрайт переместится в (10,10), затем через секунду, (20,20), затем через секунду вернется в (10,10).
Вместо этого спрайт перемещается только (-10, -10) каждые три секунды, поэтому он принимает только значение temp в конце цикла.
То же самое относится и к setPosition.
Здесь есть что-то очень простое, но исследования привели меня к еще большему количеству вопросов, чем ответов, и именно поэтому я пришел сюда.