Python中的变换(transform)和转场(transition) link

可以使用Python创建新的变换(transform)和转场(transition),并应用在Ren’Py脚本中。

变换(transform) link

主要内容: 变换 动画和变换语言

变换(transform)是一个Python的可调用组件。当使用一个可视组件调用变换时,变换会返回另一个可视组件。

举例:

init python:

    # 这是一个使用right和left两个默认变换的自定义变换。
    def right_or_left(d):
        if switch:
            return right(d)
        else:
            return left(d)

ATL变换在Python中等效于一个Transform对象。

class Transform(child=None, function=None, **properties) link

一个Transform对象会将各种操作应用到其子组件,操作包括:剪裁、旋转、缩放和alpha混合等。一个Transform对象的字段一一对应 变换特性 ,并应用到子组件。

child

变换应用的子组件。

function(trans, st, at, /) int | None link
若不是None,这是渲染变换效果时调用的函数。调用这个函数时使用3个固定位置入参:
  • Transform对象。

  • 显示时间轴,单位为秒。

  • 动画时间轴,单位为秒。

函数会返回一个延迟时间,单位为秒。在延迟时间之后这个函数会被再次调用。如果延迟时间是None,则会在下次互动之后立刻调用。

该函数除了第一个入参的变换对象之外不应有其他副作用,并且要求可以在任何时间点使用任何值调用以启用预加载。

其他关键词入参都会作为对应变换特性的值。 绘制变换效果时,对应的变换特性都会根据入参设置值,但在变换对象创建后不再更改。 使用 function 参数传入的函数或调用 update() 方法,可以改变对应的变换特性。

其他参数被视为设置变换特性的值。

hide_request link

当function函数被调用时,这项会被设置为True,标识变换效果被隐藏。

hide_response link

如果hide_request为True,这项会被设置为False,防止变换效果被隐藏。

set_child(child) link

使用一个新的 child 调用这个方法,child 成为变换的子组件。

update() link

当变换特性(property)字段在 function 参数指定的回调方法之外被更新时,这个方法会被调用,确保修改生效。

转场(transitions) link

主要内容: 转场(transition)

其他参考: ATL转场

一个转场(transition)是一个Python的可调用组件。使用两个关键词入参调用,返回一个表现转场效果的可视组件。这两个关键词入参是:

old_widget

一个表示旧界面的可视组件。

new_widget

一个表示新界面的可视组件。

返回的可视组件应该有一个 delay 字段(field),域中的值表示转场效果运行的时间,单位为秒。

举例:

init python:

    def dissolve_or_pixellate(old_widget=None, new_widget=None):
        if persistent.want_pixellate:
            return pixellate(old_widget=old_widget, new_widget=new_widget)
        else:
            return dissolve(old_widget=old_widget, new_widget=new_widget)