2012-07-04 46 views
6

puedo crear una cámara:libgdx setOrigin y setPosition no funciona como se esperaba?

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

Crear un sprite:

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

Establecer el origen, tamaño y posición:

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

luego lo mostraremos:

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

Pero cuando lo renderizo, la parte inferior izquierda de mi bola está en (0, 0), no en el centro de ella, como era de esperar porque establecí el origen en el centro del sprite. ¿Qué me estoy perdiendo?

Respuesta

7

El origen se relaciona con la rotación y la escala, como se describe en JavaDocs para el método.

+0

Ah, por supuesto. Lo leí, pero no puse 2 y 2 juntos. Gracias. – shino

+1

Sé que no está vinculado a la posición, pero ¿por qué esta frase en el Doc para el método de posición de conjunto? : Establece la posición donde se dibujará el sprite. Si se cambian el origen, la rotación o la escala, es un poco más eficiente establecer la posición después de esas operaciones. – LeSam

+0

Actualice el enlace – therealprashant

Cuestiones relacionadas