2012-03-10 8 views
0

私は自分のゲーム世界で作成したBox2dオブジェクトにテクスチャをオーバーレイしようとしています。しかし、テクスチャの座標は間違っています。テクスチャのx軸とy軸は、世界の実際のオブジェクトの位置から非常に離れています。テクスチャはBox2dボディを引き継ぎません

これは、テクスチャを描画するための責任のコードの行である:

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

結果は、テクスチャが(150,150)のベクトルによって相殺されます。これをどうやって解決するのですか?

答えて

3

Box2Dは、座標系にメートルを使用します。あなたのバッチは画面座標で動作しているかもしれませんが、その投影行列を定義している場合、Box2Dの座標を描画しようとするときに違いが生じるかもしれません。 SpriteBatchのセットアップ方法に関するコードを投稿できますか?

これを行う方法が1つあります。 http://www.java2s.com/Open-Source/Android/Game/libgdx/com/badlogic/gdx/tests/box2d/Box2DTest.java.htm

:あなたのrenderメソッド

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

最初の部分のための参考に、代わりに内部1

// 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); 

、独自の描画するためにカメラを使用するようにSpriteBatchを設定し 1.セットアップカメラ

+0

yup ...それを試してみました!... libgdxで今や正直にあきらめて...私のために働いていないのです! – whythehack

+0

もしあなたがいくつかのコードを投稿すれば、それは助けになるかもしれません –

関連する問題