马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
本帖最后由 烈林凤 于 2026-7-24 19:41 编辑
就在我发出上一篇帖子几小时后,突然得知了一个惊天消息!原来rp存在renpy.show_layer_at这样方便的函数!(归根结底,还是rp文档内容太多,没办法记住所有函数)))
文档:等效语句 — Ren'Py 中文文档
那么,这有什么用呢?
我们知道blur是一种变换特性,而renpy.show_layer_at可以直接将变换作用在图层上,那么我们就可以做到标题所说的功能
以下是代码:
[RenPy] 纯文本查看 复制代码 transform blur_screen_transform:
blur 10
init -1 python:
if "blur_screen" not in config.layers:
config.layers.append("blur_screen")
def blur_layer(if_bool:bool):
if if_bool:
renpy.show_layer_at(blur_screen_transform, layer='master')
renpy.show_layer_at(blur_screen_transform, layer='blur_screen')
else:
renpy.show_layer_at(False, layer='master')
renpy.show_layer_at(False, layer='blur_screen')
screen say(who, what):
layer 'blur_screen'
[RenPy] 纯文本查看 复制代码 screen game_menu(title, scroll=None, yinitial=0.0, spacing=0):
style_prefix "game_menu"
on "show" action Function(blur_layer, True)
on "hide" action Function(blur_layer, False)
# if main_menu:
# add gui.main_menu_background
# else:
# add gui.game_menu_background
首先我们需要先定义一个新的界面图层,专门用于我们需要模糊的图层,这里以对话界面(对话框的内容)作为演示,将对话界面的图层改为了blur_screen
之后定义一个函数,用布尔值判断是模糊还是取消模糊,写上两个renpy.show_layer_at,第一个参数填写事先定义好的变换样式,第二个参数填写需要模糊的图层,其中
master是在label中show、scene、call等方式显示的图片所使用的图层,blur_screen则是我们之前定义的图层
最后在需要模糊的地方使用这个函数,我这里用screen game_menu作为演示,当进入界面时使用,隐藏界面时关闭
实际原理就这么简单,难的是如何从文档中找到这个有用的函数)
|