绘制暂停屏幕作为播放屏幕上的一层 - LibGdx

时间:2017-03-03 12:22:13

标签: user-interface libgdx

在我的LibGdx游戏中,我创建了暂停功能。在玩游戏时,如果按下暂停按钮,则会显示一个带有恢复按钮的单独屏幕。

实际上我想要做的是暂停屏幕应该像游戏一样出现在游戏屏幕上方。

就像下面游戏的屏幕截图一样:

enter image description here

我只能使用单独的bg和所有内容在我的游戏中创建一个新的暂停屏幕。 我希望显示暂停的游戏。最后我可以为简历按钮,框等绘制图形,就像屏幕截图一样。

如何实现此图层,如显示暂停画面?

2 个答案:

答案 0 :(得分:2)

在Gamescreen中,您可以使用舞台UI(导航按钮)。我很确定你这样做。

private uiStage;
private boolean isPause;
private Group pauseGroup; 

public void render(){

    if(!isPause) UpdateGame();    
    DrawGame();         

    uiStage.act();
    uiStage.draw();
}

每当您想要暂停游戏时创建一个组,并在想要恢复游戏时删除该组。您也可以为您的群组创建一次,并在show()方法中添加所有暂停UI。当您想要显示暂停时将该组添加到舞台,并在您恢复游戏时删除。

public void pauseGame(){

   isPause = true;
   pauseGroup = new Group;
   Image semiTransparentBG= ......
   // setSize(Size of screen) and make it semi transparent.
   pauseGroup.addActor(semiTransparentBG);

   //crate all other pause UI buttons with listener and add to pauseGroup

   stage.addActor(pauseGroup);

}

public void resumeGame(){

    if(isPause){
      isPause=false;
      pauseGroup.remove();
    }  
}

答案 1 :(得分:0)

简短回答:是的,你可以。 首先让暂停屏幕扩展Stage类而不是Screen类。然后在绘制游戏后尝试调用暂停屏幕的绘制。像这样:

public void render(){
    UpdateGame();
    pause_screen.act();

    DrawGame();
    pause_screen.draw();
}

暂停屏幕打开时停止游戏更新。 当然,这已经过度简化,但您可以查看它。