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中,任何可能泄漏内存的对象都实现了一次性
,并且必须在丢失引用之前进行处理