Si vous utilisez une caméra (ce que vous devriez faire), le changement de système de coordonnées est assez simple :
camera= new OrthographicCamera(Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
camera.setToOrtho(true, Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
Si vous utilisez des TextureRegions et/ou un TextureAtlas, tout ce que vous devez faire en plus est d'appeler region.flip(false, true).
Les raisons pour lesquelles nous utilisons y-up par défaut (que vous pouvez facilement modifier comme illustré ci-dessus) sont les suivantes :
- votre code de simulation utilisera très probablement un système de coordonnées euclidiennes standard avec y-up
- si vous allez en 3D, vous avez le y-up
- Le système de coordonnées par défaut est un système à droite dans OpenGL, avec y-up. Vous pouvez bien sûr facilement changer cela avec un peu de magie matricielle.
Les deux seuls endroits dans libgdx où nous utilisons y-down sont :
- Coordonnées de la pixmap (origine en haut à gauche, y-bas)
- Coordonnées de l'événement tactile qui sont données en coordonnées de fenêtre (origine en haut à gauche, y-bas)
Encore une fois, vous pouvez facilement changer le système de coordonnées utilisé en utilisant soit Camera, soit un petit peu de mathématiques matricielles.
0 votes
Bien sûr, c'est un peu ce que je fais en ce moment. Mais y a-t-il un moyen d'inverser le système de coordonnées ? Quelque chose comme créer une matrice de projection avec le système de coordonnées que je veux. Ou dire au Spritebatch de dessiner selon un certain système de coordonnées... J'ai cherché comme un fou, mais je ne semble pas trouver quelque chose en particulier ... (et si oui, quel est le code réel)
2 votes
C'est en effet un cauchemar. Les choses comme SpriteBatch et sprites vont du bas vers la gauche. Les choses comme input et textureregion partent du haut à gauche. Il en résulte un codage très maladroit et une rotation des choses dans votre esprit si souvent que vos yeux commencent à sortir. Quoi qu'il en soit, je recommande de s'y habituer, tourner autour de la caméra résulte en des images retournées et ensuite vous devez tout retourner, mais pas tout, juste la plupart des choses et les faire dessiner de manière inattendue. LibGDX est génial, mais le système de coordonnées a de sérieux problèmes. Il faut s'y habituer.