Java 为什么我的精灵在LibGDX中闪烁?
我正试图用精灵创建一个主菜单。然而,当它被渲染和所有东西时,精灵会快速闪烁。为什么要这样做Java 为什么我的精灵在LibGDX中闪烁?,java,libgdx,Java,Libgdx,我正试图用精灵创建一个主菜单。然而,当它被渲染和所有东西时,精灵会快速闪烁。为什么要这样做 @Override public void show() { batch = new SpriteBatch(); texture = new Texture("ui/mainmenu.png"); mainMenu = new Sprite(texture); mainMenu.setSize(Gdx.graphics.getWidth(), Gdx.graphics.
@Override
public void show() {
batch = new SpriteBatch();
texture = new Texture("ui/mainmenu.png");
mainMenu = new Sprite(texture);
mainMenu.setSize(Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
batch.begin();
mainMenu.draw(batch);
batch.end();
}
@Override
public void render(float delta) {
Gdx.gl.glClearColor(0, 0, 0, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
}
这在渲染方法中进行:
batch.begin();
mainMenu.draw(batch);
batch.end();
Render是一种不断调用的方法,当屏幕显示时,show只调用一次。如果使用这段代码,事情应该会正常进行。在每一帧中,清除屏幕,然后渲染精灵
@Override
public void show() {
batch = new SpriteBatch();
texture = new Texture("ui/mainmenu.png");
mainMenu = new Sprite(texture);
mainMenu.setSize(Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
}
@Override
public void render(float delta) {
//clear screen to black.
Gdx.gl.glClearColor(0, 0, 0, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
//render sprite
batch.begin();
mainMenu.draw(batch);
batch.end();
}
使用正交摄影机渲染精灵。这可能对你有用
OrthographicCamera cam;
@Override
public void show() {
batch = new SpriteBatch();
cam= new OrthographicCamera(Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
cam.position.set(Gdx.graphics.getWidth()/2, Gdx.graphics.getHeight()/2,0);
cam.update();
texture = new Texture("ui/mainmenu.png");
mainMenu = new Sprite(texture);
mainMenu.setSize(Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
}
@Override
public void render(float delta) {
//clear screen to black.
Gdx.gl.glClearColor(0, 0, 0, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
//render sprite
batch.setProjectionMatrix(cam.combined);
batch.begin();
mainMenu.draw(batch);
batch.end();
}
谢谢你的回复,但是当我把这三行代码放到render方法中时,我只得到一个空白screen.Gdx.gl.glClearColor(0,0,0,1);Gdx.gl.glClear(GL20.gl\u颜色\u缓冲\u位);你必须把它放在后面。不幸的是,我仍然有一个黑屏。看看我的答案。它应该能解决你的问题。