libgdx setOrigin и setPosition не работают должным образом?

Я создаю камеру:

camera = new OrthographicCamera(5.0f, 5.0f * h/w);

Создайте спрайт:

ballTexture = new Texture(Gdx.files.internal("data/ball.png"));
ballTexture.setFilter(TextureFilter.Linear, TextureFilter.Linear);
TextureRegion region = new TextureRegion(ballTexture, 0, 0, ballTexture.getWidth(), ballTexture.getHeight());
ball = new Sprite(region);

Установите исходную точку, размер и положение:

ball.setOrigin(ball.getWidth()/2,ball.getHeight()/2);
ball.setSize(0.5f, 0.5f * ball.getHeight()/ball.getWidth());
ball.setPosition(0.0f, 0.0f);

Затем сделайте это:

batch.setProjectionMatrix(camera.combined);
batch.begin();
ball.draw(batch);
batch.end();

Но когда я визуализирую его, нижний левый угол моего спрайта с мячом находится в точке (0, 0), а не в его центре, как я ожидал, потому что я установил начало координат в центре спрайта. Что мне не хватает?


person shino    schedule 04.07.2012    source источник


Ответы (1)


Происхождение относится к повороту и масштабированию, как описано в JavaDocs для метода.

person nEx.Software    schedule 04.07.2012
comment
Ах, конечно. Я это читал, но не сложил 2 и 2. Спасибо. - person shino; 04.07.2012
comment
Я знаю, что это не связано с позицией, но почему это предложение в документе для метода установки позиции? : Устанавливает положение, в котором будет отрисовываться спрайт. Если исходная точка, поворот или масштаб изменены, немного эффективнее установить положение после этих операций. - person LeSam; 18.12.2013
comment
Ссылка в ответ мертва. Новая ссылка: libgdx.badlogicgames. com/nightlies/docs/api/com/badlogic/gdx/ - person D. Visser; 11.06.2016