我们如何在libGDX中删除背面纹理?

Ale*_*hew 1 java android opengl-es libgdx

private Texture  druidTexture;
private SpriteBatch batch;    
Sprite sprite;
@Override
public void create() {
druidTexture = new Texture(Gdx.files.internal("star-large.gif"));    
sprite = new Sprite(druidTexture);
batch = new SpriteBatch(); 
}
@Override
public void dispose() {

}

@Override
public void pause() {

}

@Override
public void render() {
    batch.begin();
    sprite.rotate(45);
    float x=sprite.getX();
    float y=sprite.getY(); 
    float newx=x+1;
    System.out.println(newx);
    float newy=y+1;
    sprite.setX(newx);
    sprite.draw(batch);
    batch.end();
}

@Override
public void resize(int arg0, int arg1) {

}

@Override
public void resume() {

}

}
Run Code Online (Sandbox Code Playgroud)

我正在获取上述代码的输出 在此输入图像描述

但是我需要移除后面的星星,对于每个星星,我该怎么办?

Pio*_*zmo 5

你需要在每个帧之前清除屏幕所描述的在这里:

    public void render () {
            Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT); // This cryptic line clears the screen.
            batch.begin();
            // Drawing goes here!
            batch.end();
    }
Run Code Online (Sandbox Code Playgroud)

  • 这是一个完全独立的问题,它取决于您的投影矩阵.如果它是默认的OpenGL投影,你只需检查星的位置是> = 1.如果你投射到1个单位= 1个像素,你会检查星的位置是> =窗口的宽度.对于任何其他投影,您必须进行一些数学运算才能看到窗口边缘的位置. (2认同)