Tengo un problema al intentar colisionar dos figuras en sfml, la cosa es que colisiona pero en vez de chocar y estarse quieto sin poder avanzar se coloca en la otra parte de la otra figura y así consecutivamente.
Aquí un vídeo previo del error:
El vídeo es capturado por mi, dura 30 seg. Para mostrar el error.
https://www.youtube.com/watch?v=i8TFZbfo7EE
Código:
Código C++:
Ver original
sf::FloatRect rect = rec.getGlobalBounds(); sf::FloatRect rect2 = rec2.getGlobalBounds(); if(rect.intersects(rect2)){ if(rec.getPosition().x<400){ std::cout << rec.getPosition().x << std::endl; rec.setPosition(350, rec.getPosition().y); } if(rec.getPosition().x>400){ rec.setPosition(450, rec.getPosition().y); } if(rec.getPosition().y<400){ rec.setPosition(rec.getPosition().x, 350); } if(rec.getPosition().y>400){ rec.setPosition(rec.getPosition().x, 450); } }
rec -> es el rectángulo que manejo con el keyboard.
rec2 -> es el rectángulo que está situado fijamente en el centro de la ventana.
Si supiesen a que debe deberse dicho error agradecería alguna respuesta.
Gracias.
Saludos!