簡體   English   中英

支持屏幕尺寸libgdx-android

[英]support screen sizes libgdx - android

我正在嘗試使用Libgdx在Android設備上開發蛇游戲。 眾所周知,蛇游戲是基於容納不同單元的網格。

現在,我開發了游戲的第一個版本。 在桌面上看起來不錯,但是在大型Android設備(Galaxy S4,HTC ONE)中,所有對象看起來都很小。 此外,游戲的功能已“被廢除”。

在桌面上,游戲以480px寬X 800px高(OrthographicCamera)的分辨率運行。 我還在游戲屏幕中定義了一個Viewport類的實例,並將其設置為FillViewPort(當調用resize方法時,我將更新視口)。

顯然,所有這些都不起作用。 游戲大小仍然失真。

如何保持此固定分辨率或縮放游戲並保持像素之間的比例。

PS我試圖實現所有類型的視口,因為它們在libgdx的官方網站中有記錄-https: //github.com/libgdx/libgdx/wiki/Viewports

對我的蛇游戲沒有幫助。

這是我屏幕的代碼:

package com.david.screens;

import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.Screen;
import com.badlogic.gdx.graphics.OrthographicCamera;
import com.badlogic.gdx.utils.viewport.ExtendViewport;
import com.badlogic.gdx.utils.viewport.FillViewport;
import com.badlogic.gdx.utils.viewport.Viewport;
import com.david.gameworld.GameRenderer;
import com.david.gameworld.GameWorld;
import com.david.helpers.InputHandler;

public class GameScreen implements Screen{

    private GameRenderer renderer;
    private GameWorld world;
    private OrthographicCamera camera;
    private Viewport viewport;

    public GameScreen() {
        world = new GameWorld();
        this.camera = new OrthographicCamera();
        this.camera.setToOrtho(false, 480, 800);
        viewport = new ExtendViewport(480, 800);
        renderer = new GameRenderer(world, camera);
        Gdx.input.setInputProcessor(new InputHandler(world.getSnake()));
    }

    @Override
    public void render(float delta) {
        // TODO Auto-generated method stub
        renderer.render(1/delta);
    }

    @Override
    public void resize(int width, int height) {
        // TODO Auto-generated method stub
        viewport.update(width, height);
    }

    @Override
    public void show() {
        // TODO Auto-generated method stub      
    }

    @Override
    public void hide() {
        // TODO Auto-generated method stub      
    }

    @Override
    public void pause() {
        // TODO Auto-generated method stub      
    }

    @Override
    public void resume() {
        // TODO Auto-generated method stub      
    }

    @Override
    public void dispose() {
        // TODO Auto-generated method stub      
    }
}
viewport = new ExtendViewport(480, 800,camera);

並且在繪制內容之前,不要忘記設置投影矩陣。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM