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 :

[Box2D] Limiter la rotation d'un corps


Sujet :

Physique

  1. #1
    Membre du Club
    Inscrit en
    Octobre 2007
    Messages
    204
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 204
    Points : 67
    Points
    67
    Par défaut [Box2D] Limiter la rotation d'un corps
    Salut,
    pour mon jeu de plkateform je souhaite creer une sorte de character controller, et pour ça je dois limiter la rotation du body entre deux valeurs pour des questionde realismes, mais je e sais pas qiel estl a meilleur solution.
    dommage

  2. #2
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2008
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 60
    Points : 74
    Points
    74
    Par défaut yop
    regarde la doc du b2body
    http://linuxuser.at/elements/doc/box...2_body_def.htm

    et essaye de mettre "angular damping" a 1 ca devrai marché ,en tout cas c est fait pour^^

  3. #3
    Membre actif
    Avatar de Fabien Henon
    Homme Profil pro
    Développeur indépendant
    Inscrit en
    Mars 2005
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur indépendant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 151
    Points : 226
    Points
    226
    Par défaut
    L'angular damping si je me souviens bien sert à "ralentir" ou accélérer une rotation, mais pas à la bloquer à une certaine valeur.

    Tu as le fixedRotation dans la définition du body qui te permet de ne pas du tout pouvoir faire de rotation avec ton Body.
    Par contre limiter la rotation d'un body n'est pas possible il me semble.
    Ou alors il faudrait trouver un moyen de l'attacher avec un rotatedJoint et de limiter les rotations, mais je ne vois pas trop comment faire pour ça

    Mais sinon une autre technique consisterait à faire toi même la vérification, du genre à chaque frame tu regardes si tu ne dépasse pas, et si c'est le cas alors tu le remets comme il faut.

    En espérant t'avoir aidé
    Soft Creations - FirmLife

    Soft Creations: Blog de Fabien Henon et site de prestations de sites web et applications mobiles
    FirmLife: Le nouveau jeu de gestion d'entreprises en ligne

  4. #4
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2008
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 60
    Points : 74
    Points
    74
    Par défaut
    sur la plupart des moteurs physiques l angular damping sert effectivement a ralentir les rotation,

    mais bon quand il est défini a 1,,c est un ralentissement TOTAL
    c est a dire qu'en théorie il ne devrait pas y avoir de rotation

    puisque le damping ca doit etre un calcul bidon genre :

    velocitée_angulaire = velocitée_angulaire * (1-AngularDamping)

    après en pratique selon les moteurs , y a effectivement des rotation impromptue^^

    si ca marche pas avec le damping, tu peut essayer ce que te suggere TheBasher

  5. #5
    Membre actif
    Avatar de Fabien Henon
    Homme Profil pro
    Développeur indépendant
    Inscrit en
    Mars 2005
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur indépendant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 151
    Points : 226
    Points
    226
    Par défaut
    Mais pour empêcher la rotation d'un objet Bax2D fournie une variable: fixedRotation, il suffit de la mettre à true pour que l'objet ne fasse plus aucune rotation

    Cependant ce que veut bachir006 si j'ai bien compris ce n'est pas stopper la rotation mais la limiter entre 2 valeurs, et par contre pour ça Box2D ne fournie aucune fonction Donc il faut essayer de trouver un moyen pour contourner ça.
    Soft Creations - FirmLife

    Soft Creations: Blog de Fabien Henon et site de prestations de sites web et applications mobiles
    FirmLife: Le nouveau jeu de gestion d'entreprises en ligne

  6. #6
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2008
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 60
    Points : 74
    Points
    74
    Par défaut
    en mémorisant l ancien angle ,et si la nouvelle valeur et hors limite ,on remet l ancienne ,,,dans le genre?

    effectivement j avais mal cerné son problème ^^

  7. #7
    Membre actif
    Avatar de Fabien Henon
    Homme Profil pro
    Développeur indépendant
    Inscrit en
    Mars 2005
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur indépendant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 151
    Points : 226
    Points
    226
    Par défaut
    En effet, faire comme ça, devrait fonctionner mais il faut tester parce qu'il se pourrait que lors de la phase de correction des collisions il y ait quelques incohérences du fait qu'on se "téléporte", mais étant donné que le mouvement de rotation devrait être assez petit (puisque c'est juste le remettre en place s'il déborde) il ne devrait normalement pas y avoir de problème.
    Soft Creations - FirmLife

    Soft Creations: Blog de Fabien Henon et site de prestations de sites web et applications mobiles
    FirmLife: Le nouveau jeu de gestion d'entreprises en ligne

  8. #8
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2008
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 60
    Points : 74
    Points
    74
    Par défaut
    Tout A fait daccord ^^

    je viens de tester une limitation d angle sur un autre moteur physique en bidouillant, et en fait quand on fait ca il vaut mieux mettre l angular damping a 1 ou avec une valeur importante comme ca le moteur fait ses calcul avec des rotation les moins importante possible, du coup quand on "tweake" l angle du body ,et ben ca passe pas a traver le sol ^^

    bon c est pas dit que ca marche sur box2d mais les moteurs physique on pas mal de points commun^^

Discussions similaires

  1. Elément plaque et rotation de corps rigide
    Par yass6886 dans le forum Mathématiques
    Réponses: 0
    Dernier message: 04/04/2014, 09h36
  2. limitation rotation bones (ragdoll je crois)
    Par dark poulpo dans le forum XNA/Monogame
    Réponses: 0
    Dernier message: 24/02/2012, 19h31
  3. algo : rotation d'objet 3d
    Par numeror dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 19/08/2002, 23h58
  4. Comment limiter les mouvements du curseur??
    Par scorpiwolf dans le forum C++Builder
    Réponses: 9
    Dernier message: 07/07/2002, 23h09
  5. [Comparatifs] Limites nombres tables et quantité de données
    Par benj63 dans le forum Décisions SGBD
    Réponses: 7
    Dernier message: 13/06/2002, 22h31

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