【发布时间】:2015-03-14 16:41:04
【问题描述】:
我在实现游戏暂停模糊屏幕以在游戏暂停状态期间渲染时遇到问题。我需要拍摄当前屏幕的图片或纹理,即游戏运行状态,就在用户暂停屏幕时。也许将其存储到内存中,然后对其进行模糊处理,然后将其渲染到屏幕上,以实现良好的模糊、高斯模糊效果,就像他们在愤怒的小鸟等流行游戏中所做的那样。
我尝试使用屏幕截图来实现,但是屏幕截图的过程使游戏冻结了几秒钟,这不太好。
这是我的渲染代码的一部分
private void updatePlayerForUserInput(float delta)
{
if (Gdx.input.isKeyPressed(Keys.P) || pause)
{
ScreenShotSaver.saveScreenShot();
state = State.GAME_PAUSED;
if(!DEBUG_MODE)
{
toggleGestureProcessor(false);
setBackgroundTexture(new TextureRegion(applyBlurEffect(Gdx.files.external("madboy/screenshot.png"))));
gameScreenGamePauseMenu.sendInMenu();
}
}
}
有人可以帮助实现像这样的屏幕
这是我非常渴望的效果的一个例子 1 :enter link description here 这是另一个,虽然类似 2:enter link description here
这是我根据游戏状态更新逻辑的一部分
private void render(float delta)
{
switch (state)
{
case GAME_READY:
renderReady();
break;
case GAME_RUNNING:
renderRunning(delta);
break;
case GAME_PAUSED:
renderPaused();
break;
case GAME_LEVEL_END:
renderLevelEnd();
break;
case GAME_OVER:
renderGameOver();
break;
}
}
private void update(float delta)
{
switch(state)
{
case GAME_READY:
updateReady();
break;
case GAME_RUNNING:
updateRunning(delta);
break;
case GAME_PAUSED:
updatePaused();
break;
case GAME_LEVEL_END:
updateLevelEnd();
break;
case GAME_OVER:
updateGameOver();
break;
}
}
我正在使用 Libgdx 库和 java 编程
【问题讨论】:
-
不要保存到文件(你最大的减速),而是通过弄乱渲染目标来渲染到纹理
-
@ratchetfreak ,您介意举个例子吗,如果可行,我可以选择您的答案。
标签: java android opengl-es libgdx