我无法在游戏暂停状态下实现游戏暂停模糊屏幕渲染。当用户暂停屏幕时,我需要拍摄当前屏幕的图片或纹理,即游戏运行状态。也许将它存储到内存中,模糊然后将其渲染到屏幕以获得漂亮的模糊效果,高斯模糊效果就像它们在愤怒的小鸟等热门游戏中一样。
我尝试使用屏幕截图进行实现,但屏幕截图过程会让游戏冻结几秒钟,但这并不好。
这是我的渲染代码的一部分
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;
}
}
Iam使用Libgdx库和java编程
答案 0 :(得分:1)
请尝试使用以下
,而不是将屏幕截图的图像保存到文件中Pixmap构造函数中的字节数组应包含图像字节,两个整数是偏移量和长度
如何将图像作为字节获取的示例:
BufferedImage bufferedImage = new Robot().createScreenCapture(new Rectangle(startX, startY, width, height));
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
ImageIO.write(bufferedImage, format, outputStream);
outputStream.flush();
byte[] data = outputStream.toByteArray();
outputStream.close();
其中format
可以是字符串形式的任何图像格式(下面的示例):
String format = "png";
String format = "jpg";