2012-07-04 13 views
6

creo una macchina fotografica:libgdx setOrigin e setPosition non funzionano come previsto?

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

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

Impostare l'origine, le dimensioni e la posizione:

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

Poi la rendono:

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

Ma quando lo renderò, la parte inferiore sinistra del mio sprite palla è a (0, 0), non al centro di esso, come mi aspetterei che fosse perché ho impostato l'origine al centro dello sprite. Cosa mi manca?

risposta

7

L'origine si riferisce a rotazione e ridimensionamento, come descritto nel metodo JavaDocs.

+0

Ah, naturalmente. L'ho letto, ma non ho messo insieme 2 e 2. Grazie. – shino

+1

So che non è collegato alla posizione ma perché questa frase nel documento per il metodo di posizione impostata? : Imposta la posizione in cui verrà disegnato lo sprite. Se l'origine, la rotazione o la scala vengono cambiate, è leggermente più efficiente impostare la posizione dopo tali operazioni. – LeSam

+0

Si prega di aggiornare il link – therealprashant

Problemi correlati