Libgdx:在着陆时画一个精灵

Libgdx:在着陆时画一个精灵,libgdx,rendering,Libgdx,Rendering,我想在触地事件发生时画一个精灵,在触地事件发生时画一个精灵。我尝试了以下代码: public class Connect4Screen implements Screen { SpriteBatch batch; Connect4Screen(){ batch = new SpriteBatch(); camera = new OrthographicCamera(30, 20); camera.update(); batch.setProject

我想在触地事件发生时画一个精灵,在触地事件发生时画一个精灵。我尝试了以下代码:

public class Connect4Screen implements Screen {
    SpriteBatch batch;
    Connect4Screen(){
    batch = new SpriteBatch();
    camera = new OrthographicCamera(30, 20);
    camera.update();
    batch.setProjectionMatrix(camera.combined);
    Gdx.input.setInputProcessor(new InputAdapter(){

        @Override
        public boolean touchDown(int screenX, int screenY, int pointer, int button) {
            drawChip();
        }
    }
    }
    public void drawChip(){
        batch.begin();
        batch.draw(new Texture("Images/yellow.png"), 0,  5, 1.4f,1.4f);
        batch.end();
    }
}
我删除了不必要的代码。
这里出了什么问题?

如果你只是把某个东西画成一次性事件,它只会在1/60秒内可见。游戏在一个循环中一次又一次地重新绘制屏幕,因此要使某些内容出现并停留在屏幕上,需要设置一个成员布尔值来指示应该绘制它,然后在渲染方法中,如果布尔值为true,则绘制该项

这是一个非常简单的解释。游戏往往有许多不同的项目来来去去去,并保持各自的布尔是不切实际的。因此,通常你会有一个要绘制的项目列表,你可以根据游戏中的事件从列表中添加和删除项目。在渲染方法中,可以循环遍历列表并绘制其中的所有内容

此外,如果不保留对纹理的成员引用,则不能创建
新纹理
,以便以后可以
dispose()
它。纹理使用GPU上的本机内存,必须进行处理,否则会泄漏内存。在LibGDX中,任何可能泄漏内存的对象都实现了
一次性
,并且必须在丢失引用之前进行处理