Текстуры не рисуют поверх Box2d Body - PullRequest
0 голосов
/ 10 марта 2012

Я пытаюсь наложить текстуру на объект Box2d, который я создал в своем игровом мире. Но координаты текстур просто неверны. Оси x и y текстур очень далеки от фактического расположения объектов в мире.

Это строка кода, отвечающая за рисование текстуры:

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

В результате текстура смещается на вектор (150,150). Как мне это исправить?

1 Ответ

3 голосов
/ 10 марта 2012

Box2D использует метры для своей системы координат.Ваша партия может работать в экранных координатах или, тем не менее, вы определили ее матрицу проекции, что может вызвать различия при попытке рисовать по координате Box2D.Можете ли вы опубликовать некоторый код о том, как настроить SpriteBatch?

Вот один из способов сделать это.1. Настройте камеру 2. Настройте SpriteBatch на использование камеры для рисования вместо собственной внутренней

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

Затем в методе визуализации

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

Ссылка для первой части:http://www.java2s.com/Open-Source/Android/Game/libgdx/com/badlogic/gdx/tests/box2d/Box2DTest.java.htm

...