在LibGDX中我使用的是一个产生10x10平方的ShapeRenderer。为了保持宽高比,我已将ExtendedViewport应用于OrthographicCamera并将舞台设置为ExtendedViewport。
public class Game extends ApplicationAdapter {
private Viewport viewport;
private Stage stage;
private Camera camera;
@Override
public void create () {
camera = new OrthographicCamera(800, 480);
viewport = new ExtendViewport(800, 480, camera);
stage = new Stage(viewport);
在render()中,我调用一个shaperenderer,它应该生成一个正方形,但渲染一个y拉伸的矩形。
shapeRenderer.begin(ShapeType.Filled);
shapeRenderer.identity();
shapeRenderer.setColor( Colors.get(square.color));
shapeRenderer.rect(square.x, square.y, square.width, square.height);
shapeRenderer.end();
我猜这个问题可能是因为ShapeRenderer没有在舞台上注册。如果我理解正确,只有演员可以在舞台上表演,我不能添加原始形状。
我有相当简单的图形对象出现和消失。是否可以避免使用舞台并保持纵横比或者我必须将ShapeRender放入演员?我想使用ExtendedViewport而不是创建我自己的方法。
编辑: ExtendViewport中似乎存在错误。 FitViewport不会拉伸对象。
答案 0 :(得分:1)
在shapeRenderer()。begin之前,调用shapeRenderer()。setProjectionMatrix(camera.combined);这对于SpriteBatches也是必需的。