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)