如何在libgdx中创建非常简单的暂停/恢复游戏



我是libgdx的新手,如何在libgdx中创建非常简单的暂停/恢复游戏??

我正在尝试使用libgdx实现简单的游戏。我想创建暂停游戏,但不知道如何根据用户输入暂停和恢复游戏。请提出想法以及一些实现相同想法的实用代码。我使用的是libgdx库中演示的简单游戏代码。非常感谢。

public class MyGdxGame extends ApplicationAdapter {
SpriteBatch batch;
Texture img;
float x;
float y;
@Override
public void create () {
batch = new SpriteBatch();
img = new Texture("badlogic.jpg");
}
@Override
public void render () {
Gdx.gl.glClearColor(1, 0, 0, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
x= x+4;
if(Gdx.input.isKeyPressed(Input.Keys.P)){
// pause

}
batch.begin();
batch.draw(img, x, y);
batch.end();
}
@Override
public void dispose () {
batch.dispose();
img.dispose();
}

}

按p键可按下游戏

if(Gdx.input.isKeyPressed(Input.Keys.P)){
// if(game.pause()){
game.resume();
}else{
game.pause();
}
}

知道吗???感谢

您的渲染方法被称为可重复的;暂停";手段取决于你。你必须实现你的逻辑;暂停";state,因为这对libGDX没有任何意义。

若你们想在游戏暂停时冻结一切,但仍要绘制,最好的方法是(IMHO(将绘制和计算(移动和其他东西(完全分开。因此,当调用渲染方法时,您将调用绘图方法一次(以绘制图形(,但您也将计算应调用计算方法的次数(以独立于帧速率具有相同的游戏速度(,并调用该次数。

然后,当你的游戏暂停时,你将跳过调用你的计算方法,只调用绘图方法。因此,任何东西都不会移动,直到你结束暂停,都会绘制出相同的图形。

为了保持暂停状态,可以使用一些布尔变量。每次按下p键时,您都应该将其反转,如:

if(Gdx.input.isKeyPressed(Input.Keys.P)){
paused = !paused;
}

或者其他什么(正如@Tenfour04所建议的(。

最新更新