2012-03-10 3 views
0

J'essaye de superposer une texture sur un objet Box2d que j'ai créé dans mon monde de jeu. Mais les coordonnées des textures sont fausses. Les axes x et y des textures sont très éloignés de l'emplacement réel des objets dans le monde.Textures ne dessinant pas sur Box2d Body

Ceci est la ligne de code responsable de l'élaboration de la texture:

batch.draw(khumbtexture, bodyKhumb.getPosition().x ,bodyKhumb.getPosition().y); 

Le résultat est la texture est compensée par un vecteur de (150150). Comment puis-je réparer ça?

Répondre

3

Box2D utilise des compteurs pour son système de coordonnées. Votre lot peut fonctionner en coordonnées d'écran ou bien vous avez défini sa matrice de projection, ce qui peut provoquer des différences lorsque vous essayez de dessiner à une coordonnée Box2D. Pouvez-vous poster du code sur la façon dont vous configurez votre SpriteBatch?

Voici une façon de le faire. 1. Configuration d'une caméra 2. Définir vos SpriteBatch pour utiliser l'appareil pour dessiner au lieu de son propre interne un

// setup the camera. In Box2D we operate on a 
// meter scale, pixels won't do it. So we use 
// an orthographic camera with a viewport of 
// 48 meters in width and 32 meters in height. 
// We also position the camera so that it 
// looks at (0,16) (that's where the middle of the 
// screen will be located). 
camera = new OrthographicCamera(48, 32);  
camera.position.set(0, 15, 0); 

Ensuite, dans votre méthode render

camera.update(); 
batch.setProjectionMatrix(camera.combined); 
//clear screen here 
//draw your stuff in Box2D meter coordinates 
batch.draw(texture,1,2); 

Référence pour la première partie: http://www.java2s.com/Open-Source/Android/Game/libgdx/com/badlogic/gdx/tests/box2d/Box2DTest.java.htm

+0

yup ... essayé que! ... ive abandonné sur libgdx maintenant pour être honnête ... juste ne pas travailler pour moi! – whythehack

+0

si vous postez du code, cela pourrait aider –

Questions connexes