Java 成型机。为什么是圆';有点摇晃吗?
当我运行这个应用程序时,它有点摇晃。我不明白,为什么会这样?我应该怎么做才能使圆圈的像素不抖动Java 成型机。为什么是圆';有点摇晃吗?,java,libgdx,Java,Libgdx,当我运行这个应用程序时,它有点摇晃。我不明白,为什么会这样?我应该怎么做才能使圆圈的像素不抖动 public class Main extends ApplicationAdapter { ShapeRenderer shapeRenderer; float x,y; @Override public void create() { shapeRenderer = new ShapeRenderer(); x = Gdx.g
public class Main extends ApplicationAdapter {
ShapeRenderer shapeRenderer;
float x,y;
@Override
public void create() {
shapeRenderer = new ShapeRenderer();
x = Gdx.graphics.getWidth() / 2;
y = Gdx.graphics.getHeight() / 2;
}
@Override
public void render() {
//Gdx.gl.glClearColor(0, 0, 0, 1);
//Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
shapeRenderer.begin(ShapeRenderer.ShapeType.Filled);
shapeRenderer.setColor(1, 0, 0, 1);
shapeRenderer.circle(x++, y, 100);
shapeRenderer.end();
}
@Override
public void dispose() {
shapeRenderer.dispose();
}
}
使用帧间相同的增量(时间间隔)调用渲染,导致感知速度抖动。通常,对于LibGDX,使用delta调用render方法,即自上次渲染以来的时间,但是,您使用的是ApplicationAdapter。 您可以通过自己获取增量时间并更改增量来进行补偿
shapeRenderer.circle(x++, y, 100);
到
根据您喜欢的速度调整浮动增量常量
阅读这篇关于调整游戏中不规则时间步长的优秀文章。
详细说明“摇晃”。您正在不断增加
x
,因此您已经在不断移动圆。如果我在render中添加此代码:Gdx.gl.glClearColor(0,0,0,1);Gdx.gl.glClear(GL20.gl\u颜色\u缓冲\u位);圆圈移动时没有任何像素抖动(像素抖动)。但当我删除这两行时,圆圈的过去帧在抖动(圆圈的像素在抖动)。没有屏幕截图或GIF很难分辨。但是,如果您不清除屏幕,并且不断增加x
,那么它可能会慢慢地在x
上画出越来越多的圆圈。非常感谢!!!
x=x+ (Gdx.graphics.getDeltaTime()* incrementConstant);