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 :

[C#/XNA] [Farseer] CreatePolygonGeom


Sujet :

Physique

  1. #1
    Membre régulier
    Inscrit en
    Août 2008
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 83
    Points : 76
    Points
    76
    Par défaut [C#/XNA] [Farseer] CreatePolygonGeom
    Bonjour,

    j'ai une soucis dans la création d'un polygone de géométrie avec FarseerPhysics. Suivant la liste de Vertices que je passe à la méthode CreatePolygonGeom, il me déclenche ou non une erreur d'OverFlow.

    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Vertices vertices = new Vertices();
                vertices.Add(new Vector2(-720, 50));
                vertices.Add(new Vector2(-625, 75));
                vertices.Add(new Vector2(-380, 70));
                vertices.Add(new Vector2(-220, 85));
                vertices.Add(new Vector2(0, 30));
                vertices.Add(new Vector2(360, 0));
                vertices.Add(new Vector2(720, 0));
     
                Body rampBody = BodyFactory.Instance.CreateRectangleBody(501, 501, 1);
                rampBody.Position = new Vector2(500, 500);
                rampBody.IsStatic = true;
                Geom rampGeom = GeomFactory.Instance.CreatePolygonGeom(rampBody, vertices, 0f);
                this.physicsSim.Add(rampBody);
                this.physicsSim.Add(rampGeom);
    Ce code la marche et me génère bien ce qu'il faut.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Vertices vertices = new Vertices();
                vertices.Add(new Vector2(-250, -250));
                vertices.Add(new Vector2(-200, -200));
                vertices.Add(new Vector2(-100, -100));
                vertices.Add(new Vector2(0, 0));
                vertices.Add(new Vector2(100, 100));
                vertices.Add(new Vector2(200, 200));
                vertices.Add(new Vector2(250, 250));
     
                Body rampBody = BodyFactory.Instance.CreateRectangleBody(501, 501, 1);
                rampBody.Position = new Vector2(500, 500);
                rampBody.IsStatic = true;
                Geom rampGeom = GeomFactory.Instance.CreatePolygonGeom(rampBody, vertices, 0f);
                this.physicsSim.Add(rampBody);
                this.physicsSim.Add(rampGeom);
    Ce code la me génère l'exception :
    L'opération arithmétique a provoqué un dépassement de capacité.
    à la ligne 142 de FarseerGames.FarseerPhysics.Collisions.DistanceGrid .

    Seul la position des vertices a changée. Il y a-t-il une erreur que je n'aurais pas vu? :o

    merci

  2. #2
    Membre régulier
    Inscrit en
    Août 2008
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 83
    Points : 76
    Points
    76
    Par défaut
    Résolu, en fait étrangement le repère (0,0) se trouve dans le coin haut droite de la géométrie

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Jeux xna-farseer / xaml
    Par Nicos6414 dans le forum Windows Phone
    Réponses: 7
    Dernier message: 12/11/2013, 14h08
  2. [C#/XNA] Farseer -> Sélection d'object
    Par mikyfpc dans le forum XNA/Monogame
    Réponses: 2
    Dernier message: 20/01/2013, 14h09
  3. XNA Qu'en pensez vous ?
    Par Heptaeon dans le forum XNA/Monogame
    Réponses: 17
    Dernier message: 24/09/2006, 13h26

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