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)