2012-07-04 4 views
6

ich eine Kamera:libgdx setOrigin und setPosition nicht wie erwartet funktioniert?

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

ein Sprite erstellen:

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

die Herkunft, Größe einstellen und die Position:

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

es dann machen:

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

Aber wenn ich es rende, ist der Boden links von meinem Ball Sprite bei (0, 0), nicht der Mittelpunkt von ihm, wie ich es erwarten würde, weil ich den Ursprung auf das Zentrum des Sprites setze. Was vermisse ich?

Antwort

7

Der Ursprung bezieht sich auf Rotation und Skalierung, wie in der JavaDocs für das Verfahren beschrieben.

+0

Ah natürlich. Ich habe das gelesen, aber nicht 2 und 2 zusammen. Vielen Dank. – shino

+1

Ich weiß, dass es nicht mit der Position verbunden ist, aber warum dieser Satz im Doc für die Methode der gesetzten Position? : Legt die Position fest, an der das Sprite gezeichnet wird. Wenn Ursprung, Drehung oder Maßstab geändert werden, ist es etwas effizienter, die Position nach diesen Vorgängen festzulegen. – LeSam

+0

Bitte aktualisieren Sie den Link – therealprashant

Verwandte Themen