Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Auteur Sujet: collision avec une roue  (Lu 3002 fois)

0 Membres et 1 Invité sur ce sujet

windjim

  • Newbie
  • *
  • Messages: 14
    • Voir le profil
    • E-mail
collision avec une roue
« 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 ?

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : collision avec une roue
« Réponse #1 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.
Laurent Gomila - SFML developer

windjim

  • Newbie
  • *
  • Messages: 14
    • Voir le profil
    • E-mail
Re : collision avec une roue
« Réponse #2 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

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : collision avec une roue
« Réponse #3 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.
Laurent Gomila - SFML developer

windjim

  • Newbie
  • *
  • Messages: 14
    • Voir le profil
    • E-mail
Re : collision avec une roue
« Réponse #4 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 ?

Xaychru04

  • Newbie
  • *
  • Messages: 8
    • Voir le profil
    • E-mail
Re : collision avec une roue
« Réponse #5 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.

windjim

  • Newbie
  • *
  • Messages: 14
    • Voir le profil
    • E-mail
Re : collision avec une roue
« Réponse #6 le: Août 19, 2013, 11:06:44 am »
Oui c'est ça, merci pour vos réponse je vais faire tout ça.