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

若不是None,這是渲染變換效果時調用的函數。調用這個函數使用3個入參:

  • Transform對象。
  • 顯示時間軸,單位為秒。
  • 動畫時間軸,單位為秒。

函數會返回一個延遲時間,單位為秒。在延遲時間之後這個函數會被再次調用。如果延遲時間是None,則會在下次互動之後立刻調用。

其他參數被視為設置變換特性的值。

hide_request link

當function函數被調用時,這項會被設置為True,標識變換效果被隱藏。

hide_response link

如果hide_request為True,這項會被設置為False,防止變換效果被隱藏。

set_child(child) link

使用一個新的 child 調用這個方法,child 成為變換的子組件。

update() link

當變換特性(property)欄位(field)在回調方法之外被更新時,這個方法會被調用,確保修改生效。

轉場(transitions) link

一個轉場(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)