Dans mon jeu XNA, j'utilise Viewport.Project pour obtenir les coordonnées 2d de l'écran des coordonnées 3D d'un soleil (principalement parce que c'est joli). J'ai quand même eu ce travail, quand je regarde dans les directions opposées du soleil, je vois 2 d'entre eux (techniquement, un). Je n'ai aucune idée de ce qui se passe ici ..Viewport.Project problems
Quelqu'un sait ce qui se passe? Et comment puis-je empêcher cela?
Pour aider à visualiser cela, voici une image de ce que je parle: Hyperlinked image, don't have 10+ rep
Voici le code:
Rectangle clientBounds = Window.ClientBounds;
Texture2D sun = Content.Load<Texture2D>(@"Image\Skybox_Sun");
Vector3 coords = new Vector3(1000, 0, 1000);
Vector3 coords1 = graphics.GraphicsDevice.Viewport.Project(coords, camera.Projection, camera.View, Matrix.Identity);
suncoords = coords1;
spriteBatch.Begin();
spriteBatch.Draw(sun, new Vector2(coords1.X, coords1.Y), null, Color.White, 0, new Vector2(cursor.Width/2, cursor.Height/2), q, SpriteEffects.None, 0);
spriteBatch.End();
Dans l'image, « Sun Coords » est les coordonnées d'écran du soleil. La seule chose qui varie entre ces deux est que le Z diminue d'une TRES, très petite valeur. – Jared
Quoi qu'il en soit, je l'ai résolu en utilisant vue truster cueillette. Merci pour la suggestion de toute façon. – Jared
Ah oui, maintenant je vois la position que vous imprimez sur les écrans ... Elle doit juste être entre 0 et 1 (pas <0 ou dans votre cas> 1). Je suis content que vous ayez réussi à le faire fonctionner. – LiquidAsh