2012-03-10 3 views
0

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

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

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

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

ответ

3

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

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

+0

yup ... попробовал это! ... ive отказался от libgdx теперь, если быть честным ... просто не работает для меня! – whythehack

+0

если у вас есть какой-то код, это может помочь –

Смежные вопросы