2015-04-01 33 views
0
public OrthographicCamera camera; 
Viewport viewport; 

    camera = new OrthographicCamera(); 
    viewport = new ScalingViewport(Scaling.stretch, 1920, 1080, camera); 
    viewport.apply(); 
    camera.position.set(camera.viewportWidth/2, camera.viewportHeight/2, 0); 
    camera.update(); 

然後我移動相機用我的鼠標與此代碼libGDX你怎麼在屏幕的左上角畫當您使用視域,且移動相機

Vector3 v = new Vector3(Gdx.input.getX(), Gdx.input.getY(), 0); 
    camera.unproject(v); 
     camera.position.set(v); 
     camera.update(); 

一切工作正常除了我想要在屏幕的左上角繪製一些文字外。我使用camera.combined,它在原始屏幕上繪製它,但它不跟隨我移動相機的位置。我該如何做到這一點?

回答

4

優秀的問題,我創建了一個方法來返回相對於屏幕位置的Vector3。我不確定是否有內置的方法來做到這一點或更簡單的方法,但這裏是我的代碼如下。祝你的節目我好運。

public Vector3 relativeVector(float x, float y,OrthographicCamera c){ 
    return new Vector3(x+c.position.x-c.viewportWidth/2,y+c.position.y-c.viewportHeight/2,0); 
} 
+0

謝謝!這完全幫助了我。 – CodeCamper 2015-04-01 06:35:15

+0

@CodeCamper不要忘記大拇指和標記爲答案。 – CodeCamper 2015-04-01 06:35:25

+0

這是一個性能殺手。每次調用它時,它會創建一個新的vector3對象。更好地將Vector欄設置爲值。 – laubed 2015-04-01 09:58:18

相關問題