在libgdx中如何显示暂停屏幕,当用户点击暂停时,它应该是当前屏幕上的层,它应该关闭屏幕时,用户点击恢复我怎么能在libgdx中实现它。libgdx游戏当用户点击暂停图标时如何显示暂停屏幕
1
A
回答
4
我不喜欢在这里使用原生Android View的建议,这可以在libgdx本身内部整齐地完成。
我会有一些变量来定义游戏的当前状态。如果按下暂停按钮,或者游戏被android暂停(例如,如果用户按下home按钮),则该变量应该获得暂停值。 然后在render()方法中,如果此变量具有暂停值,则绘制一些暂停屏幕。
此屏幕可以用多种方式绘制。如果您使用的是舞台,你有两个伟大的选择:
如果停下来,除了游戏阶段,绘制暂停项目圣人绘制的游戏阶段之后。然后它会在游戏之上。
您可以创建一些窗口actor,并向其添加暂停项目。然后当游戏暂停时,将其添加/使其在舞台中可见。
一些示例代码:
public class GameScreen implements Screen {
private Stage mystage;
public static final int GAME_RUNNING = 0;
public static final int GAME_PAUSED = 0;
private int gamestatus;
// ...
public void render(float deltaTime) {
// draw game normally, probably shouldn't update positions etc. if
// the game is paused..
if (pausebutton is pressed) {
pauseGame();
}
if (gamestatus == GAME_PAUSED) {
// draw pause screen
}
}
public void pauseGame() {
gamestatus = GAME_PAUSED;
}
// this is called by android
public void pause() {
pauseGame();
}
}
不是完全工作的例子,但示出的基本逻辑。
1
声明它
public static final int GAME_READY = 0;
public static final int GAME_RUNNING = 1;
public static final int GAME_PAUSED = 2;
public static final int GAME_OVER = 4;
public static int state;
和更新方法
switch (state) {
case GAME_READY:
updateReady();
break;
case GAME_RUNNING:
updateRunning(delta);
break;
case GAME_PAUSED:
updatePaused();
break;
case GAME_OVER:
gameOver = true;
updateGameOver();
break;
}
这一定会帮助你。
1
boolean GAME_PAUSED = false;
if (GAME_PAUSED) {
//Do not update camera
batch.begin();
resumeButton.draw(batch);
batch.end();
} else {
//Update Camera
Gdx.gl.glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
world.step(1/60f, 8, 3);
camera.update();
debugRenderer.render(world, camera.combined);
//Do your game running
}
相关问题
- 1. 如何在用户关闭屏幕时暂停游戏
- 2. 当游戏暂停时Phaser“暂停游戏”文本
- 3. 暂停屏幕设计的iOS游戏
- 4. 暂停屏幕
- 5. Libgdx屏幕gui(用于暂停按钮)
- 6. 当进入背景时暂停游戏
- 7. 如果屏幕被锁定,点击暂停按钮时avplayer不会暂停
- 8. 如何让屏幕暂停?
- 9. 防止LibGDX游戏在暂停时完全停止
- 10. Android:如何实现按钮“游戏暂停”屏幕
- 11. 当屏幕锁定时,Mp3已暂停
- 12. 如何暂停游戏并在日冕中显示新图层
- 13. Flash - 暂停游戏ActionScript 3
- 14. scoreLabel.text使得游戏暂停
- 15. 暂停游戏(ActionScript 3)
- 16. 暂停游戏循环?
- 17. clearInterval和暂停游戏
- 18. Libgdx:暂停菜单和暂停状态
- 19. 如何暂停和恢复andengine游戏?
- 20. 如何在cocos2d中暂停游戏?
- 21. 显示暂停
- 22. Spritekit - 保持游戏暂停时didBecomeActive
- 23. ChartBoost广告暂停屏幕
- 24. 如何暂停图像当我点击停止按钮
- 25. Javascript:暂停/暂停JavaScript俄罗斯方块游戏
- 26. 当主页按钮被点击需要时间时,Cocos 2d游戏暂停
- 27. LibGDX停止时间计数器暂停
- 28. 如何在LibGDX暂停定时器delaySeconds
- 29. 使用javascript暂停Flash游戏
- 30. 如何在单击/触摸屏幕时暂停MediaElement - UWP
你应该使用一个'enum'代替,就像这样: '公共枚举游戏状态{ 就绪,正在运行,暂停,GAMEOVER }' '公共游戏状态状态= GameState.READY;' – vurp0 2014-02-01 18:35:18