0

我是 lib gdx 的新手,面临正确渲染的问题。当我移动 Actor 时,它移动得很好,但最后一个位置帧没有从屏幕上清除,所以整个路径在移动时出现。

就像如果对象 1 移动,那么它看起来像 11111111111111111111111111111,而它应该只在最后一点像 1。

我的演员

公共类 SinglePipe 扩展演员 {

@Override
public void draw(SpriteBatch batch, float parentAlpha) {
    batch.setColor(getColor().r, getColor().g, getColor().b, getColor().a);
    batch.draw(Assets.car, this.getX(), this.getY());

}

@Override
public void act(float delta) {
    // TODO Auto-generated method stub
    super.act(delta);

}

}

屏幕类

公共类 GameScreen 实现 Screen、GestureListener {

private Stage stage;
private SinglePipe singlePipe;

Logger logger = new Logger("");

public GameScreen() {
    // Gdx.graphics.setContinuousRendering(false);
    logger.setLevel(5);
    stage = new Stage();
    singlePipe = new SinglePipe();
    stage.addActor(singlePipe);

}

@Override
public void render(float delta) {
    // camera.update();
    handleInput();
    Gdx.gl.glClearColor(0, 0, 0, 1);
    Gdx.gl.glClear(GL10.GL_GREEN_BITS);
    stage.act();
//  stage.draw();

}

private void handleInput() {
    if (Gdx.input.isKeyPressed(Input.Keys.A)) {
        // singlePipe.addAction(Actions.moveBy(5, 5));
        // singlePipe.addAction(Actions.rotateBy(180));
        singlePipe.setX(singlePipe.getX() + 5);
        singlePipe.setY(singlePipe.getY() + 5);
    }

}

}

4

1 回答 1

1

在您的渲染方法中使用:

Gdx.gl.glViewport(0, 0, Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);`
于 2013-07-12T21:21:33.667 回答