Bonjour !
Je suis encore un débutant en SFML, et j'essaye donc de me familiariser avec en essayant diverse chose.
Dans une fenêtre j'ai crée deux CircleShape ( un vert que je peux déplacer par des évé,ements que j'ai fait, et un rouge qui lui est immobile ). Mon but était de déplacer ce point vert et de l'emmener vers le point rouge. A ce moment, lors de la collision entre les deux point, je ne suis plus censé pouvoir déplacer le point vert dans la direction du point rouge ( il est bloqué par le point rouge ).
Cependant ca ne marche pas, et mon point vert peux traverser mon point rouge
Voici la création de mes deux CircleShape :
CircleShape cercle2(70);//Création du point rouge immobile
cercle2.setFillColor(Color::Red);
cercle2.setPosition(330,130); // On place le point rouge au centre de ma fenêtre
FloatRect box2 = cercle2.getGlobalBounds();//On récupère le cadre autour de la forme
CircleShape cercle1(50);// Création du point vert déplacable
cercle1.setFillColor(Color::Green);
FloatRect box1 = cercle1.getGlobalBounds();//On récupère le cadre autour de la forme
Le cercle vert a pour coordonnées (d,e)
Et voici par exemple l'événement que j'utilise pour déplacer mon point vert à droite :
if (sf::Keyboard::isKeyPressed(Keyboard::Right))//Déplacement vers la droite
{
if (d<700 && !(box1.intersects(box2))) { d=d+1;}// Test si on peux déplacer
cercle1.setPosition(d, e);
window.clear();
window.draw(cercle1);
}
Je précise que le " d<700 " est un test pour que le point ne sorte pas de la fenêtre
Bref, je ne vois pas le problème
Si vous le souhaitez je peux vous fournir le code en entier, il n'est pas très long, et je l'ai commenté.
Merci d'avance !