java - 尝试绘制填充视口的圆圈网格,但网格从中心开始
问题描述
我正在使用 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();
}
解决方案
可以肯定的是,相机默认看 0,0,这意味着它将 0,0 放在中心。所以你想设置你的相机的位置在 - SCREEN_WIDTH / 2, - SCREEN_HEIGHT / 2
您可以使用 Gdx.graphics.getWidth() / getHeight() 获取屏幕尺寸
推荐阅读
- angular - 在下拉列表中设置选定值
- sas - Proc Tabulate rowpctn 单独的列百分比
- spring - spring-cloud-config 应该包含什么文件
- excel - 空单元格导致类型错误,清除单元格修复
- python - 如何使用简洁的代码在 Python 中将 URL 参数转换为 JSON (dict)
- python - 为什么这个字符串连接格式不起作用?
- python - 具有大小到整数的字符串数字输入
- ruby - Netlify 部署“在“构建站点”阶段失败:构建脚本返回非零退出代码:42”
- accounting - 我如何测量每个视频聊天的时间以在 connectycube 中记账?
- oauth-2.0 - 授权流程是否应该同时为 Web 应用程序使用密钥和 PKCE