2012-07-04 36 views
6

我創建了一個攝像頭: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),而不是它的中心,因爲我期望它是因爲我將原點設置爲精靈的中心。我錯過了什麼?

回答

7

原點與旋轉和縮放有關,如該方法的JavaDocs中所述。

+0

啊,當然。我讀過,但沒有把2和2放在一起。謝謝。 – shino

+1

我知道它沒有鏈接到位置,但爲什麼Doc中的這個句子用於設置位置方法? :設置精靈將被繪製的位置。如果更改原點,旋轉或比例,則在這些操作之後設置位置會稍微高效。 – LeSam

+0

請更新鏈接 – therealprashant