【问题标题】:last point also rendering for actor in libgdx最后一点也在 libgdx 中为演员渲染
【发布时间】:2013-07-12 19:38:45
【问题描述】:

我是 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);

}

}

屏幕类

public class 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);
    }

}

}

【问题讨论】:

    标签: libgdx


    【解决方案1】:

    在您的渲染方法中使用:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多