Forum de la communauté SFML

Aide => Graphique => Discussion démarrée par: windjim le Août 19, 2013, 10:09:44 am

Titre: collision avec une roue
Posté par: windjim le Août 19, 2013, 10:09:44 am
Bonjour,
J'ai besoin de créer une roue (genre roue de la fortune) en  vue de dessus, mais j'ai aucune idée comment tester sur quel case de la roue elle s'arrête.
 - Dois-je faire un sprite par palme de la roue et tester la collision de la palme en question
 - Ou tester en fonction d'une couleur de chaque plame.

Ou existe-il autre chose qui pourrait me convenir ?
Titre: Re : collision avec une roue
Posté par: Laurent le Août 19, 2013, 10:31:54 am
Le plus simple est de tester l'angle que la balle fait avec le centre de la roue. Ensuite chaque case correspond à une fourchette d'angles.
Titre: Re : collision avec une roue
Posté par: windjim le Août 19, 2013, 10:48:01 am
Ce n'est pas une balle, en fait j'ai un curseur en haut de la roue, et quand la roue s'arrête j'ai besoin de savoir quelle palme se trouve sous le curseur
Titre: Re : collision avec une roue
Posté par: Laurent le Août 19, 2013, 10:51:53 am
Ca ne change pas grand chose, dans ce cas c'est la rotation de la roue qui est a comparer avec les angles des cases.
Titre: Re : collision avec une roue
Posté par: windjim le Août 19, 2013, 10:58:00 am
Donc si je comprend bien il faut bien que je crée chaque palme de la roue ?
Titre: Re : collision avec une roue
Posté par: Xaychru04 le Août 19, 2013, 11:02:38 am
Si j'ai bien compris ce que tu veux faire, le plus simple est de créer une classe "Roue" qui hérite de sf::Sprite et pour savoir sur quelle case elle est, tu utilises la méthodes getRotation().
Si par exemple ta roue a 10 cases, et que la méthode te renvoie 75 degrés, alors tu est sur la 75/(360/10)
 soit 2ème case, en partant de la case 0.
Titre: Re : collision avec une roue
Posté par: windjim le Août 19, 2013, 11:06:44 am
Oui c'est ça, merci pour vos réponse je vais faire tout ça.