我使用 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 放在屏幕的左下角而不是中心。
如果您希望圓之間有間隙,則需要更小的半徑或更大的步長?,F在,它們之間有 2 個單位的步長,并且它們的直徑為 2 個單位,因此它們彼此接觸。

臨摹微笑
TA貢獻1982條經驗 獲得超2個贊
很確定相機默認看著 0,0,這意味著它將把 0,0 放在中心。所以你想將相機的位置設置為 - SCREEN_WIDTH / 2, - SCREEN_HEIGHT / 2
您可以使用 Gdx.graphics.getWidth() / getHeight() 獲取屏幕尺寸
添加回答
舉報
0/150
提交
取消