2014-07-29 3 views
0

Этот фрагмент кода вращает шрифта на 180 градусов:Что означают значения в Vector3?

Matrix4 mx4Font = new Matrix4(); 
BitmapFont font; 
SpriteBatch spriteFont; 

font = new BitmapFont(Gdx.files.internal("data/font/agencyFB.fnt"); 
Gdx.files.internal("data/font/agencyFB.png"), true); //must be set true to be flipped 
mx4Font.setToRotation(new Vector3(200, 200, 0), 180); <--------------------- 
spriteFont.setTransformMatrix(mx4Font); 
spriteFont.begin(); 
font.setColor(1.0f, 1.0f, 1.0f, 1.0f); 
font.draw(spriteFont, "The quick brown fox jumped over the lazy dog", 100, 110); 
spriteFont.end();` 

Я знаю, что используется для определения осей, но если было только, что мы могли бы использовать 0 или 1 ...

ответ

0

согласно documentation, «Устанавливает матрицу на матрицу вращения вокруг данной оси».

Таким образом, было бы правильно, если бы вы могли использовать mx4Font.setToRotation(new Vector3(1, 1, 0), 180); . Лучший способ проверить это - попробовать и посмотреть, работает ли он.

+0

Проблема в том, что когда я пытаюсь повернуть шрифт, он исчезает на экране, независимо от того, использую ли я 1 200. В OpenGL это может произойти, когда центр вращения не является источником. Есть ли способ сказать, что я хочу повернуть вокруг начала (x = 0, y = 0)? – user3365436

+0

@ user3365436 перевести на центр, повернуть, перевести назад – vandale

+0

Я только что попытался сделать то, что вы сказали. Но сначала Один вопрос, при применении преобразований к матрице, должен ли быть в обратном порядке, как OpenGL? Я написал этот кусок кода: matrix.setToTranslation (-200, -200, 0); \t matrix.setToRotation (новый Vector3 (1, 1, 0), 90); \t matrix.setToTranslation (200, 200, 0); \t \t \t \t \t batch.setTransformMatrix (matrix); \t \t \t \t batch.begin(); \t font.draw (партия, «Победитель1», 200, 200); \t batch.end(); Но он просто не вращается и позиция меняется на (400, 400). – user3365436

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