最后一点也为libgdx中的actor渲染

时间:2013-07-12 19:38:45

标签: libgdx

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

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

我的演员

公共类SinglePipe扩展了Actor {

@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);
    }

}

}

1 个答案:

答案 0 :(得分:1)

在渲染方法中使用:

Gdx.gl.glViewport(0, 0, Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);`