[C#/XNA] Farseer -> Sélection d'object
Bonjour,
Je rencontre un problème sur la sélection d'objet avec la souris et le moteur Farseer.
La sélection de l'objet ne fonctionne que si je clique en haut à gauche de celui-ci, comme ci il y avait un décalage entre la texture affichée et la forme.
Création du body + fixture
Code:
1 2 3 4 5
|
this.Body = BodyFactory.CreateBody(this.world, ConvertUnits.ToSimUnits( this.Position) );
this.Body.BodyType = BodyType.Static;
FixtureFactory.AttachCircle( ConvertUnits.ToSimUnits( this.Texture.Width * .5f), 1, this.Body);
this.Origin = new Vector2(this.Texture.Width/2f, this.texture.Height /2f); |
Code de l'appel de la fonction Draw
Code:
1 2 3
|
spriteBatch.Draw(this.Texture, ConvertUnits.ToDisplayUnits(this.Body.Position), null, Color.White, this.Body.Rotation, this.Origin, 1f, SpriteEffects.None, 0); |
A ce moment là, je vois bien texture et la forme se superpose parfaitement à la texture (avec debugView).
Or pour que mon object soit détecté comme étant sous le curseur, je dois cliquer légèrement en haut à gauche de la texture
http://www.fpc-france.com/upload/ex.png
Ci-dessous le code permettant de récupérer la position du curseur et trouver l'object :
Code:
1 2 3 4 5 6 7
|
Vector2 position = Camera.ConvertScreenToWorld(input.Cursor);
if ( input.IsNewMouseButtonPress(MouseButtons.LeftButton))
{
Fixture savedFixture = World.TestPoint(position);
...
} |
merci de votre aide