2016-08-30 28 views
0

我有一個新的遊戲工作,我已創建2攝像頭一個攝像頭,現實世界與另一個(GUI)相機的靜態分辨率(800×480)較受歡迎的視口處理TEXT按鈕libgdx

private void init() { 

    camera = new OrthographicCamera(16,9); 
    camera.position.set(0, 0, 0); 
    camera.update(); 

    cameraGUI = new OrthographicCamera(800,480); 
    cameraGUI.position.set(0, 0, 0); 
    cameraGUI.update(); 

而且我想在遊戲中使用TEXT按鈕,所以我創建一個使用新的fitViewPort

fitViewPort=new FitViewport(Gdx.graphics.getWidth(),Gdx.graphics.getHeight()); 
    gameController.stage=new Stage(fitViewPort); 

然後我創建一個使用我的位圖字體我textButtons和我嘗試它在桌面上一個新的階段,它的偉大 desktop

,但是當我嘗試另一種裝置,該位置是不一樣的 Tablet

然後我想使用cameraGui寬度和高度我認爲端口,字體是非常糟糕的拉伸

任何幫助,請:(

回答

0

不要爲GUI創建專用相機,因爲視口已經有相機。

讓您的視口的寬度和高度固定,你的情況:

fitViewPort = new FitViewport(800, 480); 
gameController.stage = new Stage(fitViewPort); 

然後纔剛剛通過調用方法

gameController.stage.draw(); 

注意添加演員到舞臺,並繪製它:記住在調整大小的方法中添加gameController.stage.getViewport().update(width, height);

編輯:使用小的固定視口(800x480很小)會導致縮放,這就是字體拉長的原因。例如,如果您在1920x1080顯示器上運行800x480佈局,則它將縮放225%。

你可以做的是生成一個大尺寸的字體,並設置其數據的比例fe。 bitmapFont20.getData().setScale(0.5F);(在這種情況下,字體由FreeTypeFontGenerator生成,大小爲40)。使用這個技巧,你將能夠獲得很好的結果。證明如下。它是視角640x360F * (float) Gdx.graphics.getHeight()/(float) Gdx.graphics.getWidth()縮放到1920x1080。字體與尺寸72產生,然後數據規模設定爲0.5F

Method proff

這裏是相同的文字,但沒有修改的數據的規模。

Without method

+0

有很多情況下,GUI的單獨的攝像頭和視口是適當的。 – Tenfour04

+0

感謝這個答案,但這並不能解決我的問題,字體仍然很難看 – Ammar

+0

我編輯了答案。現在它包含一種使字體縮放看起來更好的方法。 – pr0gramist