Мне было интересно, есть ли способ сделать Android-игры в libgdx, чтобы все они имели одинаковое разрешение 480x800. Использование Gdx.graphics.setDisplayMode (480, 800, true), похоже, ничего не меняет. Создание OrthographicCamera 480 на 800 делает так, чтобы игра была 480 на 800, но не масштабируется в полноэкранном режиме и занимает весь экран, как я ожидал. Когда я тестировал его на своем телефоне, телефон просто использовал пустое пространство, чтобы заполнить остальную часть экрана, в то время как игра в разрешении 480x800. Вот код, который я использую.Полноэкранное разрешение на Android для игр с libgdx
public class GameScreen implements Screen {
private Game game;
private OrthographicCamera guiCam;
private SpriteBatch batch;
private Texture texture;
private Rectangle glViewport;
public GameScreen (Game game)
{
this.game = game;
guiCam = new OrthographicCamera(GAME_WIDTH, GAME_HEIGHT);
guiCam.position.set(GAME_WIDTH/2, GAME_HEIGHT/2, 0);
batch = new SpriteBatch();
texture = new Texture(Gdx.files.internal("data/c2.png"));
glViewport = new Rectangle(0, 0, GAME_WIDTH, GAME_HEIGHT);
}
@Override
public void render(float delta) {
if (Gdx.input.justTouched()) {
texture = new Texture(Gdx.files.internal("data/c1.png"));
}
GL10 gl = Gdx.graphics.getGL10();
gl.glClearColor(1, 0, 0, 1);
gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
gl.glViewport((int) glViewport.x, (int) glViewport.y,
(int) glViewport.width, (int) glViewport.height);
guiCam.update();
guiCam.apply(gl);
batch.setProjectionMatrix(guiCam.combined);
batch.begin();
batch.draw(texture, 0, 0, 0, 0, 142, 192);
batch.end();
}
private static final int GAME_WIDTH = 480;
private static final int GAME_HEIGHT = 800;
}
Заранее благодарен.
Спасибо, это было действительно полезно. – MasterBirdy