如何在libgdx中调整纹理维护宽高比的大小

时间:2015-12-23 21:05:17

标签: libgdx

我有.png图片"circle.png"。 问题是当我在sb.draw()方法中尝试调整大小时,迷失方向(延伸)。当我用它的默认大小绘制它时,它工作正常;

    // inside constructor 
{
        Texture texture = new Texture("circle.png");
        ...
        .
}

// render method
public void render (SpriteBatch sb){
sb.begin();
sb.setProjectionMatrix(camera.combined);
sb.draw(texture,x,y,100,100);// 100 for both width and height
sb.end();
}
  

//摄像机设置

camera = new OrthographicCamera();
camera.setToOrtho(false, width / 2, height / 2);

// width n height是480x640

第一张图片是一张,没有调整大小 第二张图片是,同时调整大小 without resizing while resizing

1 个答案:

答案 0 :(得分:2)

您的图片可能不是正方形。要保持纵横比,请使用数学:

100 = texture.getWidth()/a
a = texture.getWidth()/100


所以使用:

sb.draw(texture,x,y,100,texture.getHeight()/(texture.getWidth()/100);

我希望它有所帮助! staticcasty