2014-07-23 26 views
0

我試圖做libgdx遊戲,並且我現在有兩個問題: 1.當我使用camera.setToOrtho(false,GAME_WIDTH,GAME_HEIGHT);我的球員的textrure是偏遠的,一隻眼睛比另一隻眼睛大。使用這個攝像頭和viweport 2.進口:libgdx使用camera.setToOrtho(false,GAME_WIDTH,GAME_HEIGHT)時會產生扭曲的紋理;

camera= new OrthographicCamera(GAME_WIDTH,GAME_HEIGHT); 
camera.setToOrtho(false, GAME_WIDTH, GAME_HEIGHT); 
viewport = new StretchViewport(GAME_WIDTH,GAME_HEIGHT,camera); 

,當我做:

touchPos.set(Gdx.input.getX(1),Gdx.input.getY(1),0); 
game.camera.unproject(touchPos); 
System.out.println(touchPos.x+" "+ touchPos.y); 

我在右上角獲得0 0,但我的性格巫線0 0在左下角是借鑑。

當我使用:

game.camera = new OrthographicCamera(820,480); 
game.viewport = new FillViewport(820,480,game.camera); 

我必須使用game.batch.setProjectionMatrix(game.camera.combined);

當我使用這段代碼時,我得到了正確的工作方法和座標系,但是我已經感受到了變形的紋理。

當我使用:

camera = new PerspectiveCamera(); 
viewport = new StretchViewport(900, 470, camera); 

我有distored質地和壞COORDS系統。我不能使用:game.batch.setProjectionMatrix(game.camera.combined);

+0

對於第二個問題檢查接受的答案是這樣的:http://stackoverflow.com/questions/8104364/apply-pixel-coordinates-to-screen-coordinates –

+0

thx unproject開始工作。 – peterSweter

+0

現在一切正常嗎?然後我將創建評論作爲答案,以便人們以後清楚地看到解決方案。 –

回答

0

這是扭曲的,因爲您使用相機的固定寬度和高度,所以它只是延伸適合任何大小的窗口/屏幕上。

順便提一下,StretchViewport可以做同樣的事情(扭曲場景以適應您給窗口的尺寸)。但是你只是創建了一個視口,而沒有實際調用update(),所以它沒有做任何事情。

您很可能想使用ExtendViewport或FillViewport來避免拉伸,但其他選項可用。閱讀有關它們here

除非您將viewport.update(width,height)放入resize方法,否則您的視口將無法正確響應屏幕旋轉(或桌面窗口大小調整)。無論如何,使用實際屏幕尺寸,您至少需要撥打update一次。通過簡單地將viewport.update(width,height)放入調整大小的方法,這是最方便的。

+0

您建議您將這些視口中的哪一個用在使用整個屏幕作爲遊戲區域的像素藝術遊戲中? – peterSweter

+0

反正有沒有黑色的酒吧沒有一個沒有扭曲的質地?專業人員如何做這件事 – peterSweter

+0

請參閱我對你的其他問題的回答:http://stackoverflow.com/questions/24909056/java-libgdx-1-20-version-texture-bug – Tenfour04