我開發了一個2D遊戲,並使用OrthographicCamera和Viewport將virtaul板重新調整爲實際顯示大小。我添加圖像到舞臺並使用ClickListener檢測點擊。它工作正常,但是當我改變分辨率時,它的工作是不合理的(不能檢測到正確的演員,我認爲新的和原始的x和y的問題)。有沒有什麼辦法解決這一問題?Libgdx:調整屏幕大小和ClickListener(libgdx)
2
A
回答
3
您需要將屏幕座標轉換爲世界座標。 你的相機可以做到這一點。你可以用兩種方法,cam.project(...)
和cam.unproject(...)
或者如果你已經在使用Actors,不要自己初始化攝像機,而是使用Stage
。創建一個舞臺並添加演員。舞臺將爲你做協調翻譯。
0
我只是覺得Stage很容易使用。 如果有一些錯誤的,我認爲你應該檢查你的代碼:
public Actor hit(float x, float y)
1
一旦我也遇到這個問題,但在最後,我得到了有效的解決方案,繪製使用SpriteBatch在libgdx任何東西,或舞臺上。使用正交相機我們可以做到這一點。
首先選擇一個最適合遊戲的恆定分辨率。在這裏,我採取了1280 * 720(風景)。
class ScreenTest implements Screen{
final float appWidth = 1280, screenWidth = Gdx.graphics.getWidth();
final float appHeight = 720, screenHeight = Gdx.graphics.getHeight();
OrthographicCamera camera;
SpriteBatch batch;
Stage stage;
Texture img1;
Image img2;
public ScreenTest(){
\t \t camera = new OrthographicCamera();
\t \t camera.setToOrtho(false, appWidth, appHeight);
\t \t
batch = new SpriteBatch();
\t \t batch.setProjectionMatrix(camera.combined);
\t \t \t
img1 = new Texture("your_image1.png");
\t \t img2 = new Image(new Texture("your_image2.png"));
\t \t img2.setPosition(0, 0); // drawing from (0,0)
\t
stage = new Stage(new StretchViewport(appWidth, appHeight, camera));
stage.addActor(img2);
}
@Override
\t public void render(float delta) {
\t
\t \t Gdx.gl.glClearColor(1, 0, 0, 1);
\t \t Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
\t \t batch.begin();
\t \t batch.draw(img, 0, 0);
\t \t batch.end();
\t \t stage.act();
\t \t stage.act(delta);
\t \t stage.draw();
\t \t
\t \t // Also You can get touch input according to your Screen.
\t \t
\t \t if (Gdx.input.isTouched()) {
\t \t System.out.println(" X " + Gdx.input.getX() * (appWidth/screenWidth));
\t \t System.out.println(" Y " + Gdx.input.getY() * (appHeight/screenHeight));
\t }
\t
\t }
//
:
:
//
}
運行這段代碼在任何類型的分辨率將要在沒有任何干擾這一決議進行調整。
相關問題
- 1. libgdx表不調整大小
- 2. 限制對象在調整大小時脫離屏幕 - LibGdx
- 3. 如何禁止在libGDX中調整屏幕大小?
- 4. Libgdx:屏幕
- 5. Libgdx:屏幕managaer
- 6. libgdx離開屏幕和屏幕週期
- 7. (Java LibGDX)如何在LibGDX中調整紋理大小?
- 8. LibGDX調整窗口字體大小圖
- 9. Libgdx擬合屏幕
- 10. Libgdx屏幕混淆
- 11. Libgdx。屏幕組織
- 12. Libgdx切換屏幕
- 13. 根據libgdx中的屏幕大小設置actor大小
- 14. libgdx可調整大小/可移動的窗口與滾動屏幕
- 15. modalpopupextender調整屏幕大小?
- 16. GLUT屏幕調整大小
- 17. Android libgdx大屏幕分辨率
- 18. LibGdx RayCast box2d調試(可視屏幕)
- 19. jquerymobile和屏幕大小調整
- 20. android活動到libGdx屏幕
- 21. 在LibGdx中處理屏幕
- 22. Box2D Libgdx黑色屏幕
- 23. LibGDX - 如何清除屏幕
- 24. libGdx屏幕出現錯誤
- 25. 模糊LibGDX中的屏幕
- 26. Android libgdx bouncy屏幕邊界
- 27. LibGDX中的拆分屏幕
- 28. Libgdx屏幕不交換
- 29. LibGdx屏幕:渲染和生命週期
- 30. 支持Android和libgdx的多個屏幕
請您提供一些代碼。 –