0

我的游戏是使用 Corona 编写的,并且正在为 iOS 和 Android 编译我通过以下方式创建了屏幕模糊效果:

  • 在 iOS 和 Android 中添加了两个原生函数,接收文件路径作为参数,并对图像应用模糊效果并将其保存回来
  • 在电晕中,我首先使用display.save(...)将我的主屏幕组保存到图像
  • 调用原生函数对图像进行模糊处理
  • 显示模糊的图像

一切都很完美,但我在 Android 中遇到了性能问题:两个操作保存和模糊需要很长时间。我的想法是持久性取决于图像大小,但我不知道如何使用 display.save() 保存特定大小的图像

4

3 回答 3

0

也许您可以做的是在最初加载游戏时模糊所有可用的图像?这样您就不必在执行过程中进行模糊处理了吗?始终保持图像的正常版本+模糊版本。

更好的是,使用与您的游戏不同的脚本将模糊效果应用到您的图像并保存,并且在您的游戏中,您甚至不必在加载时进行模糊处理。

于 2013-11-06T13:43:15.520 回答
0

好的,解决这个问题的方法如下:

local screenCap = display.captireScreen(false)
screen:scale(.5,.5)
display.save(screenCap, "screenCap.png", system.CachesDirectory)
screenCap:removeSelf()

性能问题仅发生在 Android 设备上,因此可能需要先检查我们是否在 Android 上运行。

于 2013-11-07T09:32:20.883 回答
0

也许您可以缩放显示对象(xScale、yScale),使用display.captureBounds()并将模糊图像重新缩放为原始图像。

或者将屏幕划分为一个网格并将模糊应用到网格的每个部分。

于 2013-11-07T06:04:04.023 回答