我目前正在开发一个libgdx游戏,在我给它最后一步之前,我想真正听到有经验的用户的话,这已经困扰了我好几天了。 如果我想支持尽可能多的设备,基本上我将为最大可能的res设计图形,然后在需要时缩放,用于较小的屏幕,对吧?我如何开发出比我的笔记本电脑更大的分辨率(2015/16手机)。我的笔记本电脑的分辨率为1920x1080px,S7三星的分辨率为2k +宽。
谢谢!
答案 0 :(得分:0)
我认为你要找的是Viewports。您必须决定哪种策略最符合您的需求。例如,FitViewport
始终保持您定义的宽高比,这可能会导致某些设备出现黑条。
答案 1 :(得分:0)
当我亲自使用libgdx进行开发时,我会根据屏幕宽度和高度放置和调整所有对象的大小。这包括图像,字体,按钮等。这使我在所有设备上获得了非常一致的结果,因为现在大多数设备的比率为16:9或接近它。要开发大于屏幕尺寸的图像,仅使用photoshop创建指定尺寸的图像有什么问题?
答案 2 :(得分:0)
最好选择屏幕为1280,屏幕高度为800,并使用填充viewPort。因此,您几乎可以在所有屏幕上渲染游戏而不会出现拉伸问题。 Viewport是libgdx提供的解决此多屏兼容问题的方法。在这里,我将发布一些示例代码供您参考。
公共类myGame扩展了ApplicationAdapter {
public OrthographicCamera camera;
public Viewport viewPort;
private SpriteBatch batch;
private BitmapFont myScoreFont;
private Texture texture;
public myGAme() {
}
@Override
public void create() {
myScoreFont = new BitmapFont(Gdx.files.internal(Constants.PATH_TO_MY_SCORE_FONT), true);
batch = new SpriteBatch();
float w = Gdx.graphics.getWidth();
float h = Gdx.graphics.getHeight();
texture = new Texture(Gdx.files.internal(Constants.PATH_TO_LEFT_BAR));
camera = new OrthographicCamera();
camera.position.set(0, 0, 0);
camera.update();
camera.setToOrtho(false, Constants.APP_WIDTH, Constants.APP_HEIGHT);
// Here is the viewport is setting up with the camera and the screen size
viewPort = new FillViewport(1280, 800, camera);
}
@Override
public void dispose() {
batch.dispose();
}
@Override
public void render() {
Gdx.gl.glClearColor(1, 1, 1, 1);
Gdx.gl.glClear(GL30.GL_COLOR_BUFFER_BIT);
float deltaTime = Gdx.graphics.getDeltaTime();
batch.setProjectionMatrix(camera.combined);
batch.begin();
batch.draw(myScorefont,"Score",0,0);
batch.end();
}
@Override
public void resize(int width, int height) {
// the game area will be resized as per the screen size of the device
viewPort.update(width, height);
}
@Override
public void pause() {
}
@Override
public void resume() {
}
}