SFML verschiebt die Sprites nicht um mehr als 1 Pixel (selbst wenn sie gehalten werden). Außerdem verschiebt es das Sprite zurück in seine festgelegte Position, wenn die gedrückte Pfeiltaste losgelassen wird.SFML bewegt Sprites nicht korrekt
void Engine::mainLoop() {
//Loop until window is closed
while (window->isOpen()) {
processInput();
update();
sf::Sprite test;
sf::Texture texTest;
texTest.loadFromFile("img.png");
test.setTexture(texTest);
test.setPosition(50, 50);
if (sf::Keyboard::isKeyPressed(sf::Keyboard::Key::Up))
test.move(0, -1);
if (sf::Keyboard::isKeyPressed(sf::Keyboard::Key::Down))
test.move(0, 1);
if (sf::Keyboard::isKeyPressed(sf::Keyboard::Key::Left))
test.move(-1, 0);
if (sf::Keyboard::isKeyPressed(sf::Keyboard::Key::Right))
test.move(1, 0);
window->clear(sf::Color::Black);
window->draw(test);
renderFrame();
window->display();
}
}
Sie immer 'setPosition' fordern, so dass es immer um die 50 sein werden, 50 + -1 – vu1p3n0x
ich sehr dumm fühlen –