我使用 ShapeRenderer 在特定的 X,Y 坐标处绘制圆圈,从 0,0 开始,填充到 50,50,之间有间隙。我在这里遗漏了一些明显的东西吗?我创建了一个像这样的点数组:[[0,0],[0,2]...[50,48],[50,50]]这是相关代码:public void create() { camera = new OrthographicCamera(); viewport = new FitViewport(100, 100, camera); renderer = new ShapeRenderer(); grid = new PointGrid(50, 50); }public void render() { Gdx.gl.glClearColor(0,0,0,0); Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); renderer.begin(ShapeRenderer.ShapeType.Filled); renderer.setProjectionMatrix(camera.combined); renderer.setColor(Color.WHITE); for (int i = 0; i < grid.getPoints().size; i++) { Vector2 point = grid.getPoints().get(i); renderer.circle(point.x, point.y, 1, 32); } renderer.end(); camera.update(); }
2 回答
慕妹3146593
TA贡献1820条经验 获得超9个赞
当您使用视口来管理相机时,您需要调用viewport.update(...)
调整大小方法。
public void resize (int width, int height) { viewport.update(width, height, true); }
传递true
到 update 方法会将 0,0 放在屏幕的左下角而不是中心。
如果您希望圆之间有间隙,则需要更小的半径或更大的步长。现在,它们之间有 2 个单位的步长,并且它们的直径为 2 个单位,因此它们彼此接触。
临摹微笑
TA贡献1982条经验 获得超2个赞
很确定相机默认看着 0,0,这意味着它将把 0,0 放在中心。所以你想将相机的位置设置为 - SCREEN_WIDTH / 2, - SCREEN_HEIGHT / 2
您可以使用 Gdx.graphics.getWidth() / getHeight() 获取屏幕尺寸
添加回答
举报
0/150
提交
取消