IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Physique Discussion :

Besoin d'aide sur une sinusoide


Sujet :

Physique

  1. #1
    Membre régulier

    Profil pro
    Inscrit en
    Août 2006
    Messages
    213
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 213
    Points : 103
    Points
    103
    Par défaut Besoin d'aide sur une sinusoide
    Bonjour,

    Je programme actuellement un jeux, ou un joueur placé au centre de l'écran doit contrer avec un bouclier des balles rebondissantes et arrivant des 2 cotés de l'écran.

    Pour faire rebondir les balles, j'utilise une sinusoïde comme modéle. Le problème vient de la collision entre la balle et le bouclier. Comme je fais juste varier l'axe X de la balle, lorsqu'à lieu la collision, la balle rebondit mais en suivant la même sinusoïde, et elle revient donc sur ses pas au lieu par exemple si elle vient de par en haut du boublier, de rebondir vers le bas.

    Je sais pas si j'ai été clair, mais en gros il faut trouver une sinusoide déphasée ayant au point d'impact le meme X et Y que la 1ere sinusoide.

    Voici le prog :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    void Cbowl::update()
    {
     
    	pos_X += (float)way * (speed+SpeedIncrement)/10 * (100/FPS) ;
    	pos_Y = 420 - amplitude * fabs( sin( step * pos_X  ) ) ;
     
    }


    Ici, en admettant que la balle suive la trajectoire de la courbe bleue au départ, après impact elle doit suivre l'allure de la courbe rouge.

  2. #2
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 941
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 941
    Points : 5 652
    Points
    5 652
    Par défaut
    Loh,

    En première approche, je dirais:

    Le plus simple est sans doute de maintenir 2 valeurs pour les x :

    - celle qui sert à se positionner, comme tu la calcules,

    - une deuxième qui varie toujours dans le même sens, qui sert à calculer pos_Y

    ce qui aura pour effet ce que tu cherches : la sinusoïde continue sa variation en y, et l'affichage en x suit le déplacement prévu
    Si les cons volaient, il ferait nuit à midi.

  3. #3
    Membre régulier

    Profil pro
    Inscrit en
    Août 2006
    Messages
    213
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 213
    Points : 103
    Points
    103
    Par défaut
    Merci beaucoup droggo, sa marche à la perfection.

    C'est vrai que c'est con mais fallais y penser.
    Moi j'étais partis dans des grosses formules avec des ArcSin et autres.

  4. #4
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 941
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 941
    Points : 5 652
    Points
    5 652
    Par défaut
    Hi,
    Citation Envoyé par BruceBoc
    Merci beaucoup droggo, sa marche à la perfection.

    C'est vrai que c'est con mais fallais y penser.
    Moi j'étais partis dans des grosses formules avec des ArcSin et autres.
    J'ai essayé un peu aussi...
    Si les cons volaient, il ferait nuit à midi.

  5. #5
    Membre régulier

    Profil pro
    Inscrit en
    Août 2006
    Messages
    213
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 213
    Points : 103
    Points
    103
    Par défaut
    Ce qui m'étonne, c'est que la première réaction que l'on a, c'est d'essayer par les math avant même d'essayer par la logique.

    Sinon, je viens de déposer le jeux dans le forum contribution si ça t'interesse, il ne me manquait plus que la réponse à ce problème.

    Merci encore.

  6. #6
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 941
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 941
    Points : 5 652
    Points
    5 652
    Par défaut
    Mil,
    Citation Envoyé par BruceBoc
    Ce qui m'étonne, c'est que la première réaction que l'on a, c'est d'essayer par les math avant même d'essayer par la logique.

    Sinon, je viens de déposer le jeux dans le forum contribution si ça t'interesse, il ne me manquait plus que la réponse à ce problème.

    Merci encore.
    En fait, comme tu n'avais pas trouvé de solution, je me suis dit "ça doit être vicieux".

    Mais après quelques minutes de réflexion "à vide", c'est à dire la tête en l'air, sans rien faire d'autre qu'essayer de réfléchir, j'ai refait ton petit dessin sur une feuille pour suivre les valeurs "à la main", et en suivant la sinusoïde avec le crayon, je me suis dit... bref, il y avait une solution simple
    Si les cons volaient, il ferait nuit à midi.

Discussions similaires

  1. [SQL] Besoin d'aide sur une requête
    Par Angath dans le forum Langage SQL
    Réponses: 2
    Dernier message: 17/01/2006, 17h26
  2. besoin d'aide sur une requette sql
    Par maxidoove dans le forum Langage SQL
    Réponses: 13
    Dernier message: 10/10/2005, 19h42
  3. Besoin d'aide sur une fonction
    Par PrinceMaster77 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 30/08/2005, 18h40
  4. Réponses: 1
    Dernier message: 03/08/2005, 12h41
  5. Besoin d'aide sur une requête (JOIN + COUNT ?)
    Par PanzerKunst dans le forum Langage SQL
    Réponses: 2
    Dernier message: 01/06/2005, 11h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo