Tengo un pequeño problema con el movimiento de texturas, la textura se mueve bien, pero no su velocidad, solo pulsando una vez la tecla da un gran salto en vez de pequeño.
Aquí imagen del problema:
Ejecuto el programa y sale así bien:
Pulso una vez la flecha hacia abajo:
Aparece muy lejos cada paso, en vez de ser algo así:
El código:
Código C++:
Ver original
#include <SFML/Graphics.hpp> int main(){ //Crea la ventana de 300x300 sf::RenderWindow window(sf::VideoMode(300, 300), "Ventana SFML"); //Creamos una textura en este caso un tom sf::Texture tom; //Cargamos la textura de un archivo if(!tom.loadFromFile("tom.png")){ //Si hay un error salimos return EXIT_FAILURE; } sf::Sprite sprite; sprite.setTexture(tom); sprite.setTextureRect(sf::IntRect(0, 0, 32, 32)); //Si la ventana esta abierta while(window.isOpen()){ //Creamos un evento llamado ventana sf::Event ventana; //Llamamos al evento ventana while(window.pollEvent(ventana)){ //Se cierra la ventana cuando lo pedimos if(ventana.type == sf::Event::Closed){ //Cerramos la ventana window.close(); } } //Movemos arriba if(sf::Keyboard::isKeyPressed(sf::Keyboard::Up)){ sprite.move(0, -1); } //Movemos abajo if(sf::Keyboard::isKeyPressed(sf::Keyboard::Down)){ sprite.move(0, 1); } //Movemos a la izquierda if(sf::Keyboard::isKeyPressed(sf::Keyboard::Left)){ sprite.move(-1, 0); } //Movemos a la derecha if(sf::Keyboard::isKeyPressed(sf::Keyboard::Right)){ sprite.move(1, 0); } //Limpiamos la ventana window.clear(); //Dibujamos window.draw(sprite); //Actualizamos la ventana window.display(); } return 0; }
Estuve probando diferentes maneras que encontré pero ninguna logré adaptar, si supieran guiarme un poco lo agradecería.
Gracias.
Saludos!