2014-07-16 81 views
1

我的正字相機初始化爲尺寸540x960(我的HTC One屏幕的大小)。然而,當我在另一個屏幕較大的手機上試用它時,無論何時點擊移動我的紋理,都會從我觸摸的位置和紋理移動到的位置產生偏移。我應該使用不同的尺寸調整技術嗎?比如通過Gdx.graphics.getWidth()和.getHeight()來調整它的大小?不同大小的手機上的正交相機屏幕

從下面的評論:

@Override   
public boolean touchDown(float x, float y, int pointer, int button) { 
    xpos = x;  
    return false;  
} 
+1

有幾種不同的策略可用於調整屏幕大小。像這樣的固定長寬比並不好,因爲它會在沒有完全相同比例的手機上看起來失真。但是,無論您如何確定正交相機的尺寸,如果您正確計算觸摸,則不應該遇到問題。你用什麼方法獲得世界空間觸摸位置? – Tenfour04

+0

我使用的是GestureDetector。下面是我如何處理觸摸的樣品: '@Override \t \t 公共布爾觸地(浮動的x,浮Y,INT指針,INT按鈕){ \t \t \t // TODO自動生成方法存根 \t \t \t xpos = x; \t \t \t return false; \t \t}' – henzdaddy

回答

1

你只得到屏幕的X位置。要將其轉換爲世界空間(遊戲的座標系),您需要將其放入Vector3中,然後從相機中取消投影,如下所示:

@Override   
public boolean touchDown(float x, float y, int pointer, int button) { 
    Vector3 touchPoint = new Vector3(x, y, 0); //0 is arbitrary since this is in 2D 
    camera.unproject(touchPoint); //now touchPoint contains the world position of the touch 
    xpos = touchPoint.x;  
    ypos = touchPoint.y; //if you need it. 
    return false;  
} 
+0

完美的作品!非常感謝 – henzdaddy

相關問題