Ver Mensaje Individual
  #1 (permalink)  
Antiguo 24/06/2015, 14:01
Avatar de Tropy
Tropy
 
Fecha de Ingreso: diciembre-2013
Mensajes: 62
Antigüedad: 10 años, 4 meses
Puntos: 1
[SFML] Colisión rebota

Buenas,

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
  1. sf::FloatRect rect = rec.getGlobalBounds();
  2.         sf::FloatRect rect2 = rec2.getGlobalBounds();
  3.  
  4.         if(rect.intersects(rect2)){
  5.  
  6.             if(rec.getPosition().x<400){
  7.                 std::cout << rec.getPosition().x << std::endl;
  8.                 rec.setPosition(350, rec.getPosition().y);
  9.             }
  10.             if(rec.getPosition().x>400){
  11.                 rec.setPosition(450, rec.getPosition().y);
  12.             }
  13.             if(rec.getPosition().y<400){
  14.                 rec.setPosition(rec.getPosition().x, 350);
  15.             }
  16.             if(rec.getPosition().y>400){
  17.                 rec.setPosition(rec.getPosition().x, 450);
  18.             }
  19.  
  20.         }

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!