2013-05-29 3 views
2

SpriteBatch.SetProjectionMatrix(cam.combined) делает Spritebatch не нарисовывает блоки, а мой персонаж, но движение камеры работает, но если я не использую эту строку кода, все рисуется, но камера не работает? Кто-нибудь знает решение, потому что, если его просто не увидеть.Libgdx SpriteBatch.SetProjectionMatrix делает spritebatch не рисовать

EDIT: извините за грязный первый пост

Вот фрагмент кода, который вызывает беспокойство:

public void render() 
    { 


     cam.update(); 
     spriteBatch.setProjectionMatrix(cam.combined); 



     spriteBatch.begin(); 

     drawBlocks(); 
     drawBob(); 


     spriteBatch.end(); 
     cam.position.x = world.bob.GetPosition().x; 
     cam.update(); 

     drawCollisionBlocks(); 


     if(debug) 
      drawDebug(); 
    } 
+5

Добро пожаловать в StackOverflow, Адо! Это действительно длинный фрагмент кода для SO. Действительно ли действительно необходимо ответить на ваш вопрос? Люди будут намного легче помочь, если вы сможете сузить проблему больше, чем это. (Кроме того, когда вы вставляете код, используйте символ ', чтобы окружить его или выделить все его, и нажмите ctrl + K, а не используя'> ', что указывает на цитату. Я исправил это в вашем текущем сообщении) – ASGM

ответ

3

Я нашел решение, но для тех, кто может иметь проблемы такого рода в будущем, проблема заключалась в разработке методов, где я был рисунок текстуры, как это:

КОД:

spriteBatch.draw(bobFrame, bob.GetPosition().x * PPuX, bob.GetPosition().y*PPuY ,Bob.SIZE*PPuX , Bob.SIZE*PPuY); 

PPuX, PPuY были типа int и использовались для разных размеров экрана, и это было messing spriteBatch, когда я устанавливал матрицу проецирования

+0

Спасибо за сообщение о проблеме! Не могли бы вы улучшить свой ответ, добавив код, который * исправил * проблему? –

0

spriteBatch.setProjectionMatrix(cam.combined) позволяет SpriteBatch использовать систему координат, что указанный cam вместо используемого по умолчанию , Это связано с тем, что обе системы координат различны, и cam.combined выполнит математику для вас.

+0

Я понимаю, что мой вопрос в том, почему установка матрицы прогноза spritebatch на cam.combined заставит spritebatch не рисовать мои текстуры? Потому что, когда я комментирую эту строку текстур кода, вырисовываются нормально, вы видите любое решение, которое я мог бы сделать? – Ado

0

Я считаю, что вы на самом деле рисуете спрайты, однако вы их не видите, потому что y наши видовые экраны камеры не установлены (т.е. вы смотрите на неправильную область координат).

Добавление

cam.setToOrtho(false); //true to invert y axis 

«Устанавливает эту камеру к орфографической проекции с помощью окна просмотра фитинга разрешения экрана, с центром в точке (Gdx.graphics.getWidth()/2, (Gdx.graphics.getHeight)/2), при этом ось y направлен вверх или вниз. "

Link to JavaDOC here

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