界面行為(action)、值(value)和函數 link

Ren’Py帶來了一大堆行為、值和函數,與界面和界面語言協同作用。

(譯者註:在2021年3月之前,action翻譯為“動作”。於2021年4月起,action修改為“行為函數”或“行為”。)

行為(action) link

當某個按鈕(包括圖片按鈕、文本按鈕和hotspot按鈕)被啟動、被滑鼠懸停或失去滑鼠懸停狀態時,某個行為(action)就會被喚起。當某個按鈕被選中或者非啟用時,行為(action)就可能已經決定了。

與這些行為一樣,某個行為可以是一個不帶任何入參的函數。當行為被喚起時,對應的函數就會調用。如果那個行為返回某個值,返回的值就會傳到來源交互動作。

一個行為也可能是個行為(action)列表,列表內的行為會順序運行。

控制行為 link

這些行為用於管理界面,交互結果和流程控制。

Call(label, *args, **kwargs) link

結束當前語句,並調用某個腳本標籤(label)。入參和關鍵字參數會傳給 renpy.call()

Hide(screen, transition=None) link

如果名為 screen 的界面已經顯示,則隱藏這個界面。

transition
如果非None,隱藏界面時使用轉場(transition)。
Jump(label) link

觸發主控流程轉到腳本標籤 label 處。

NullAction(*args, **kwargs) link

不做任何事。

可以用作某個按鈕的“滑鼠懸停/滑鼠離開”事件響應,不執行任何行為。

Return(value=None) link

使用提供的值返回給當前的互動行為,提供的值不可以為None。常用於菜單和imagemap,用來選擇交互行為的返回值。如果使用的是 call screen 語句調用界面,返回值就會放置在 _return 變數中。

如果出現在某個菜單中,值會返回給來源菜單。(這種情況下就需要返回None。)

Show(screen, transition=None, *args, **kwargs) link

觸發另一個界面的顯示。 screen 是給定待顯示的界面名。入參會傳給正在顯示的界面。

如果 transition 非空,則會用作新界面顯示時的轉場效果。

ShowTransient(screen, transition=None, *args, **kwargs) link

顯示一個臨時界面。臨時界面會在當前交互完成後隱藏。入參會傳給當前顯示的界面。

如果 transition 非空,則會用作新界面顯示時的轉場效果。

ToggleScreen(screen, transition=None, *args, **kwargs) link

切換界面的可視性。如果某個界面當前沒有顯示,則會使用提供的入參顯示那個界面。相反,則隱藏那個界面。

如果 transition 非空,則會用作新界面顯示時的轉場效果。

數據行為 link

這些行為設置或者切換數據。

AddToSet(set, value) link

value 添加到 set 中。

set
待添加元素的集合。其可以是一個Python的集合或者列表數據列表。如果是列表的話,新增的值會追加到列表結尾。
value
待添加或追加的值。
RemoveFromSet(set, value) link

valueset 中移除。

set
待移除元素的集合,可以是一個集(set)或者列表(list)型數據。
value
待移除的元素。
SetDict(dict, key, value) link

將字典型數據 dict 中鍵值 key 對應的值設置為 value

SetField(object, field, value) link

將某個對象的欄位(field)設置為給定的值。 object 是目標對象, field 是待設置的欄位名稱的字串, value 是需要設置成的值。

SetLocalVariable(name, value) link

將指定的變數 name 設置為當前本地上下文中的值 value

只有在某個界面(screen)被另一個場景(scene)使用的情況,才會用到該函數。其提供了一種方法,可以設置界面使用變數的值。 在其他需要修改變數值的情況下,推薦使用 SetScreenVariable() ,那可以快取更多的界面數據。

該函數能賦值的變數僅限當前上下文中創建——其他地方創建的變數不能通過該函數進行設置和傳遞。

SetScreenVariable(name, value) link

將與當前界面關聯的變數 name 值設置為 value

SetVariable(variable, value) link

將變數 variable 設置為 value

ToggleDict(dict, key, true_value=None, false_value=None) link

切換 dict 中鍵 key 的值。“切換”的意思是,當對應的行為執行後,原布爾值取反。

true_value
如果非None,這就是我們使用的True值。
false_value
如果非None,這就是我們使用的False值。
ToggleField(object, field, true_value=None, false_value=None) link

切換 objectfield 的值。“切換”的意思是,當對應的行為執行後,原欄位(field)上所有布爾值取反。

true_value
如果非None,這就是我們使用的True值。
false_value
如果非None,這就是我們使用的False值。
ToggleLocalVariable(name, true_value=None, false_value=None) link

切換當前本地上下文中 name 的值。

只有在某個界面(screen)被另一個場景(scene)使用的情況,才會用到該函數。其提供了一種方法,可以設置界面使用變數的值。 在其他需要修改變數值的情況下,推薦使用 ToggleScreenVariable() ,那可以快取更多的界面數據。

該函數能賦值的變數僅限當前上下文中創建——其他地方創建的變數不能通過該函數進行設置和傳遞。

true_value
如果非None,這就是我們使用的True值。
false_value
如果非None,這就是我們使用的False值。
ToggleScreenVariable(name, true_value=None, false_value=None) link

切換當前界面變數 name 的值。

true_value
如果非None,這就是我們使用的True值。
false_value
如果非None,這就是我們使用的False值。
ToggleSetMembership(set, value) link

切換集 setvalue 的成員。如果對應的值在集裡不存在,會添加那個值到集合中。否則,就會移動那個值。

帶有這個行為的按鈕會被標記為被選中(selected)狀態,僅當那個值存在於集 set 中。

set
待添加或移除成員的集合。其可以是一個集(set)或列表(list)。如果是列表,就會在列表中結尾添加新元素。
value
需要添加的值。
ToggleVariable(variable, true_value=None, false_value=None) link

切換 variable

true_value
如果非None,這就是我們使用的True值。
false_value
如果非None,這就是我們使用的False值。

文件行為 link

這些行為會處理文件的保存、讀取和刪除。其中很多都是用 namepage 入參。

name
待保存內容的檔案名。其可以是一個字串或者一個整數。與 page 一起創建檔案名。
page
行為實際執行的頁面(page)。其值是“auto”、“quick”或者一個正整數。若為None,page的值會根據持久化頁面編號自動確定。
FileAction(name, page=None, **kwargs) link

對文件“進行正確操作”。這意味著在load界面顯示時進行文件讀取操作,相反在save界面顯示時進行文件保存操作。

name
存檔或讀檔時,槽位的名稱。如果為None,一個未被使用的槽位(基於當前時間的巨大數字)就會被使用。
page
存檔或讀檔時使用的頁面編號(page)。若為None,就使用當前頁面。

其他關鍵字入參會傳給FileLoad或者FileSave。

FileDelete(name, confirm=True, page=None) link

刪除文件。

name
要刪除的存檔槽名稱。
confirm
若為True,刪除文件前提示用戶確認。
page
存檔或讀檔時使用的頁面編號(page)。若為None,就使用當前頁面。
FileLoad(name, confirm=True, page=None, newest=True) link

讀取文件。

name
讀取的槽位名稱。若為None,an unused slot the file will not be loadable。
confirm
如果為True且當前不在主選單,在讀取文件前提是用戶確認。
page
文件讀取的頁面編號。如果為None,就是用當前頁面。
newest
如果為True,按鈕會被選中,前提是其為最新的文件。
cycle
忽略。
slot
若為True,使用 name 參數,而忽略 page 參數。
FilePage(page) link

將文件頁面設置為 page ,其可以是“auto”、“quick”或一個整數。

FilePageNext(max=None, wrap=False) link

前往下一個文件頁面(page)。

max
若該值存在,應該是整數,給定了我們前往的文件最大頁面編號。
wrap
若為True,我們可以從文件最後的頁面前往第一頁面,前提是設置了頁面最大編號。
auto
若此參數和 warp 都為True,將會把玩家帶往自動存檔頁。
quick
若此參數和 warp 都為True,將會把玩家帶往快速存檔頁。
FilePagePrevious(max=None, wrap=False) link

前往上一個文件頁面,前提是上一個頁面存在的話。

max
若該值存在,應該是整數,給定了我們前往的文件最大頁面編號。需要啟用wrap。
wrap
若為True,我們可以從文件第一頁面前往最後的頁面,前提是設置了頁面最大編號。
auto
若此參數和 warp 都為True,將會把玩家帶往自動存檔頁。
quick
若此參數和 warp 都為True,將會把玩家帶往快速存檔頁。
FileSave(name, confirm=True, newest=True, page=None, cycle=False) link

保存文件。

帶槽位的按鈕被選中,如果其被標記為最新存檔文件。

name
待存檔的槽位名。如果為None,一個未被使用的槽位(基於當前時間的巨大數字)就會被使用。
confirm
若為True,覆蓋文件前提示用戶確認。
newest
忽略。
page
槽位所在頁面名稱。若為None,使用當前頁面。
cycle
如果為True,在提供的頁面上存檔會循環使用而並不會顯示給用戶看。config.quicksave_slots 配置了循環使用的槽位。
slot
若為True,使用 name 參數,而忽略 page 參數。
FileTakeScreenshot(*args, **kwargs) link

當遊戲存檔時,截取螢幕快照並使用。通常使用存檔界面顯示之前的界面截圖,用作存檔的快照。

QuickLoad(confirm=True) link

快速讀檔。

confirm
若為True,且目前不在主選單界面,讀檔前提是用戶確認。
QuickSave(message=u'Quick save complete.', newest=False) link

快速存檔。

message
當快速存檔完成時向用戶顯示的一條訊息。
newest
設置為True用於標記快速存檔為最新的存檔。

音訊行為 link

PauseAudio(channel, value=True) link

音訊通道 channel 設置暫停標識(flag)。

如果 value 為True,通道channel會暫停。相反,通道channel會從暫停恢復。如果值為“toggle”,暫停標識會進行切換,即布爾值進行“邏輯非”操作。

Play(channel, file, selected=None, **kwargs) link

在指定通道(channel)播放一個音訊檔案。

channel
播放使用的通道(channel)。
file
播放的文件。
selected
若為True,當文件在通道上播放時,使用這個行為的按鈕會被標記為“被選中”。若為False,這個行為不會觸發按鈕啟動播放。若為None,當通道是一個音樂(music)通道時按鈕會被標記為“被選中”。

其他關鍵字參數會被傳給 renpy.music.play()

Queue(channel, file, **kwargs) link

在給定的通道上將音訊檔案隊列化。

channel
播放使用的通道(channel)。
file
播放的文件。

其他關鍵字參數會被傳給 renpy.music.queue()

SetMixer(mixer, volume) link

mixer 的音量設置為 value

mixer
需要調整音量的混合器(mixer)。這個字串通常是“music”、“sfx”或“voice”。
value
調整的目標音量值。是一個位於0.0至1.0閉區間內的數值。
SetMute(mixer, mute) link

將一個或多個混合器設置為靜音狀態。當混合器靜音時,與混合器關聯的音訊通道會停止播放音訊。

mixer
給出單個混合器名稱的字串,或一個混合器列表名稱的字串列表。混合器名稱通常是“music”、“sfx”或“voice”。
mute
若為True則靜音混合器,若為False則取消混合器靜音。
Stop(channel, **kwargs) link

停用某個音訊通道。

channel
停用的音訊通道名。

關鍵字參數會傳給 :func:renpy.music.stop()。

ToggleMute(mixer) link

切換混合器的靜音狀態。

mixer
單個混合器名稱的字串,或一個混合器列表名稱的字串列表。混合器名稱通常是“music”、“sfx”或“voice”。

其他行為 link

這些是其他地方找不到的一些行為。

Confirm(prompt, yes, no=None, confirm_selected=False) link

提示用戶進行確認的一種行為。如果用戶點擊了“是”,將執行 yes 行為。否則,執行 no 行為。

prompt
向用戶顯示的提示內容。
confirm_selected
若為True,當yes行為被選中後,提示 prompt 依然會顯示。若為False,也是預設值, yes 行為選中後提示就不再顯示。

這個行為的可用性和可選擇性與 yes 行為相匹配。

DisableAllInputValues() link

禁用所有活動的輸入項。如果存在默認輸入項的話,它將重新獲得焦點。否則,任何輸入項都不會獲得焦點。

Function(callable, *args, **kwargs) link

這個行為會使用 argskwargs 調用 callable

callable
可調用的對象。
args
傳給 callable` 的固定位置入參。
kwargs
傳給 callable 的關鍵字入參。

這個行為使用一個可選的 _update_screens 關鍵字參數,而且這個參數預設為True。參數為True時,函數返回後,互動行動會重新開始,各界面會更新。

如果函數返回一個非空值,互動行為會停止並返回那個值。(使用call screen語句得到的返回值放置在 _return 變數中。)

Help(help=None) link

顯示幫助。

如果定義過一個名為 help 的界面,使用 ShowMenu() 就可以顯示那個界面,並且 help 參數會被省略。

help

用於提供幫助的字串。其被用於以下兩種情況:

  • 如果存在一個對應名稱的文本標籤(label),對應的標籤會在新的上下文中被調用。
  • 否則,內嵌某個給定檔案名稱,並使用web瀏覽器打開。

help 為None, config.help() 配置項會被用作預設值。

HideInterface(*args, **kwargs) link

隱藏用戶介面,直到出現用戶點擊事件。

If(expression, true=None, false=None) link

根據 expression 的結果選擇使用 truefalse 的行為。這個函數用在基於某個表達式的結果選擇執行行為。注意入參的預設值None,也可以用作一個行為,禁用某個按鈕。

InvertSelected(action) link

該行為將提供行為的選項狀態反轉,可以應用在別的方法上。

MouseMove(x, y, duration=0) link

將滑鼠指針移動到坐標 x, y 。如果設備沒有滑鼠指針,或者_preferences.mouse_move的值是False,那什麼都不會發生。

duration
移動滑鼠指針行為消耗的時間,單位為秒。這個時間段內,滑鼠可能不會響應用戶操作。
Notify(message) link

使用 renpy.notify() 函數顯示 message 內容。

OpenURL(url) link

在web瀏覽器中打開 url

QueueEvent(event, up=False) link

使用 renpy.queue_event() 將給定的事件消息加入到事件隊列中。

RestartStatement(*args, **kwargs) link

這個行為會觸發Ren’Py回滾到當前語句之前,並再次執行當前語句。可以用在某些持久化變數改變後影響語句顯示效果的情況。

在菜單語境運行的話,等到用戶退出並回到上一層語境時才會執行回滾行為。

RollForward(*args, **kwargs) link

這個行為觸發前滾,前提是前滾可行。否則,該行為是禁用狀態。

Rollback(*args, **kwargs) link

這個行為觸發回滾,前提是回滾可行。否則,不會發生任何事。

入參將傳給 :func:renpy.rollback() 函數,除非參數 force 是預設值“menu”。

RollbackToIdentifier(identifier) link

這個行為觸發回滾至某個標識符(identifier)。回滾標識符會作為HistoryEntry對象的一部分返回。

Screenshot(*args, **kwargs) link

螢幕截圖。

Scroll(id, direction, amount=u'step') link
id
當前界面中條(bar)、視口(viewport)或vpgrid的id。
direction
如果是vbar,“increase”或“decrease”二選一;如果是視口或vpgrid,“horizontal increase”、“vertical increase”、“horizontal decrease”或“vertical decrease”,四選一。
amount
滾動數量。可以使用像質數,也可以寫“step”或“page”。
SelectedIf(expression) link

這個行為允許某個表達式控制一個按鈕是否被標記為選中狀態。其應被用作包含一個或多個行為的列表的一部分。例如:

# 如果mars_flag為True時,按鈕會被選中
textbutton "Marsopolis":
    action [ SelectedIf(SetVariable("mars_flag", True)), SetVariable("on_mars", True) ]

點擊按鈕後,在SeletedIf內部的行為會被正常執行。

SensitiveIf(expression) link

這個行為允許某個表達式控制一個按鈕是否被標記為可用狀態。其應被用作包含一個或多個行為的列表的一部分。例如:

# 如果mars_flag為True時,按鈕是可用的
textbutton "Marsopolis":
    action [ SensitiveIf(SetVariable("mars_flag", True)), SetVariable("on_mars", True) ]

點擊按鈕後,在SensitiveIf內部的行為會被正常執行。

Skip(fast=False, confirm=False) link

觸發遊戲開始使用跳過(skipping)。如果遊戲處於菜單語境下,這個行為導致回到遊戲界面。否則,這個行為啟用跳過(skipping)。

fast
若該值為True,直接跳到下一個菜單選項。
confirm
若該值為True,在使用跳過(skipping)前需要用戶確認。
With(transition) link

觸發 transition 生效。

條(bar)值 link

條值與條(bar)一同使用,設置條(bar)的值,且允許條(bar)調整某個潛在特性。可以通過創建 BarValue 類的子類創建一個新的條值。 所有的BarValue類都有關鍵字 step ,也可以接受關鍵字 force_step ,具體情況詳見 ui.adjustment()

AnimatedValue(value=0.0, range=1.0, delay=1.0, old_value=None) link

將某個值序列化,使用 delay 秒的時間將 old_value 的值轉為 value 的值。

value
value值自身,是一個數值。
range
value值的範圍,是一個數值。
delay
序列化value值的時間,單位為秒。預設值是1.0。
old_value
舊的value值。若為None,我們使用AnimatedValue想要替換的value值。否則,其會初始化為 value 的值。
AudioPositionValue(channel=u'music', update_interval=0.1) link

顯示在 channel 通道播放音訊檔案播放位置的值。

update_interval
值的更新頻率,單位為秒。
DictValue(dict, key, range, max_is_zero=False, style=u'bar', offset=0, step=None, action=None, force_step=False) link

允許用戶使用字典型數據的鍵調整對應的值。

dict
字典。
key
鍵。
range
調整的數值範圍。
max_is_zero
若為True,當鍵對應的值為0時,條(bar)值範圍會調整為從1到0,所有其他值都會被降低到1。同樣的,當條(bar)被設置成最大值時,鍵的值將設置為0。
style
創建的條(bar)的樣式。
offset
添加到條值的一個偏移量。
step
調整條(bar)值的步進大小。若為空,預設為條(bar)的十分之一。
action
若非None,當欄位改變時,將調用指定行為(action)。
FieldValue(object, field, range, max_is_zero=False, style=u'bar', offset=0, step=None, action=None, force_step=False) link

允許用戶調整某個對象上欄位(field)的條(bar)值。

object
調整的對象。
field
欄位(filed)名稱的字串。
range
可調整的範圍。
max_is_zero

若為True,當鍵對應的值為0時,條(bar)值範圍會調整為從1到0,所有其他值都會被降低到1。同樣的,當條(bar)被設置成最大值時,欄位(filed)的值將設置為0。

這偏向於某些內部使用。

style
創建的條(bar)的樣式。
offset
添加到條值的一個偏移量。
step
調整條(bar)值的步進大小。若為空,預設為條(bar)的十分之一。
action
若非None,當欄位改變時,將調用指定行為(action)。
MixerValue(mixer) link

音訊混合器的值。

mixer
待調整的混合器名。通常是“music”、“sfx”或“voice”,創作者也可以創建新的混合器。
ScreenVariableValue(variable, range, max_is_zero=False, style=u'bar', offset=0, step=None, action=None, force_step=False) link

用於調整界面變數值的條(bar)值。

variable
一個字串,給出了待調整的變數名。
range
可調整的範圍。
max_is_zero

若為True,當鍵對應的值為0時,條(bar)值範圍會調整為從1到0,所有其他值都會被降低到1。同樣的,當條(bar)被設置成最大值時,variable的值將設置為0。

這偏向於某些內部使用。

style
創建的條(bar)的樣式。
offset
添加到條值的一個偏移量。
step
調整條(bar)值的步進大小。若為空,預設為條(bar)的十分之一。
action
若非None,當欄位改變時,將調用指定行為(action)。
StaticValue(value=0.0, range=1.0) link

這個行為允許某個值被指定為靜態。

value
值自身,一個數值。
range
數值範圍。
VariableValue(variable, range, max_is_zero=False, style=u'bar', offset=0, step=None, action=None, force_step=False) link

允許用戶調整默認存儲區變數值的條(bar)值。

variable
一個字串,給出了待調整的變數名。
range
可調整的範圍。
max_is_zero

若為True,當鍵對應的值為0時,條(bar)值範圍會調整為從1到0,所有其他值都會被降低到1。同樣的,當條(bar)被設置成最大值時,variable的值將設置為0。

這偏向於某些內部使用。

style
創建的條(bar)的樣式。
offset
添加到條值的一個偏移量。
step
調整條(bar)值的步進大小。若為空,預設為條(bar)的十分之一。
action
若非None,當欄位改變時,將調用指定行為(action)。
XScrollValue(viewport) link

根據給定的id,在當前界面水平滾動視口(viewport)的可調整值。視口(viewport)必須在條(bar)值出現前定義。

YScrollValue(viewport) link

根據給定的id,在當前界面垂直滾動視口(viewport)的可調整值。視口(viewport)必須在條(bar)值出現前定義。

輸入(input)值 link

輸入(input)值與文本輸入一起使用,用於設置默認文本、接受改變文本、響應確認鍵、決定文本是否可編輯。要創建新的輸入(input)值,可以使用 InputValue 類的子類。

Ren’Py定義的輸入(input)值繼承自InputValue類,這意味著所有輸入值均含有Enable()、Disable()和Toggle()方法,分別執行啟用(enable)、禁用(disable)和切換編輯(toggle edit)行為。可以參考 DisableAllInputValues() 行為。

DictInputValue(dict, key, default=True, returnable=False) link

將字典 dict 中鍵 key 的值更新的輸入(input)值。

default
若為True,默認情況下輸入可以被編輯。
returnable
若為True,當用戶按下確認鍵,輸入的值就會被返回。
FieldInputValue(object, field, default=True, returnable=False) link

一個更新某個對象上欄位(field)值的輸入值。

field
欄位(filed)名稱的字串。
default
若為True,輸入預設是可以被編輯的。
returnable
若為True,當用戶按下確認鍵,輸入的值就會被返回。
FilePageNameInputValue(pattern=u'Page {}', auto=u'Automatic saves', quick=u'Quick saves', page=None, default=False) link

一個輸入值用於更新文件頁面(page)名。

pattern
用於頁面(page)的默認名。使用Python風格的替換,例如花括號{}裡的內容可以替換為頁面(page)的編號。
auto
自動保存頁面(page)的名稱。
quick
快速保存頁面(page)的名稱。
page
若該參數存在,給出了要顯示的頁面(page)編號。通常該值設定為None,表示當前頁面。
default
若為True,該輸入默認可以被編輯。
ScreenVariableInputValue(variable, default=True, returnable=False) link

一個更新變數的輸入(input)值。

variable
待更新變數名,一個字串。
default
若為True,該輸入默認可以被編輯。
returnable
若為True,當用戶按下確認鍵,輸入的值就會被返回。
VariableInputValue(variable, default=True, returnable=False) link

一個更新變數的輸入(input)值。

variable
待更新變數名,一個字串。
default
若為True,該輸入默認可以被編輯。
returnable
若為True,當用戶按下確認鍵,輸入的值就會被返回。

函數和類 link

這些函數和類在界面方面很有用。

環境設定(preference) link

所有環境設定都可以基於上面給出的行為Action和值Value來定義。這需要一些Ren’Py方面的知識,才能選擇正確的環境設定並運用。環境設定構造器(constructor)讓這件事變得簡單,通過創建一個行為或值,就能基於名稱應用在預設的環境設定界面上。

Preference(name, value=None, range=None) link

其從某項環境設定構造了合適的行為或者值。環境設定名稱應該是在變准菜單中出現的名稱,值應該是選項名、“toggle”輪詢選項、一個指定的值,或者按鈕的名稱。

可以與按鈕和熱區一起使用的行為如下:

  • Preference(“display”, “fullscreen”) - 全螢幕模式顯示。
  • Preference(“display”, “window”) - 窗口模式顯示,1倍大小。
  • Preference(“display”, 2.0) - 窗口模式顯示,2倍大小。
  • Preference(“display”, “any window”) - 用前一種窗口尺寸顯示。
  • Preference(“display”, “toggle”) - 切換顯示模式。
  • Preference(“transitions”, “all”) - 顯示所有轉場(transition)效果。
  • Preference(“transitions”, “none”) - 不顯示轉場(transition)效果。
  • Preference(“transitions”, “toggle”) - 切換轉場(transition)效果。
  • Preference(“video sprites”, “show”) - 顯示所有影片精靈(sprite)。
  • Preference(“video sprites”, “hide”) - 可能的話,將影片精靈(sprite)降格為圖片顯示。
  • Preference(“video sprites”, “toggle”) - 切換圖像降格行為。
  • Preference(“show empty window”, “show”) - 允許“window show”和“window auto”語句在say語句之外顯示一個空窗口。
  • Preference(“show empty window”, “hide”) - 不允許“window show”和“window auto”語句在say語句之外顯示一個空窗口。
  • Preference(“show empty window”, “toggle”) - 切換上面兩種情況。
  • Preference(“text speed”, 0) - 文本立刻顯示。
  • Preference(“text speed”, 142) - 設置文本顯示速度為每秒142字元。
  • Preference(“joystick”) - 顯示joystick環境設定。
  • Preference(“skip”, “seen”) - 只跳過看過的訊息。
  • Preference(“skip”, “all”) - 跳過所有訊息,無論是否看過。
  • Preference(“skip”, “toggle”) - 切換上面兩種情況。
  • Preference(“begin skipping”) - 開始跳過(skipping)。
  • Preference(“after choices”, “skip”) - 在選項後跳過。
  • Preference(“after choices”, “stop”) - 在選項後停止跳過。
  • Preference(“after choices”, “toggle”) - 切換上面兩種情況。
  • Preference(“auto-forward time”, 0) - 將自動前進的時間設置為無限。
  • Preference(“auto-forward time”, 10) - 設置自動前進時間(單位為每秒250個字元)。
  • Preference(“auto-forward”, “enable”) - 啟用自動前進模式。
  • Preference(“auto-forward”, “disable”) - 禁用自動前進模式。
  • Preference(“auto-forward”, “toggle”) - 切換自動前進模式。
  • Preference(“auto-forward after click”, “enable”) - 在一次點擊後維持自動前進模式。
  • Preference(“auto-forward after click”, “disable”) - 在一次點擊後禁用自動前進模式。
  • Preference(“auto-forward after click”, “toggle”) - 切換上面兩種情況。
  • Preference(“automatic move”, “enable”) - 啟用自動滑鼠模式。
  • Preference(“automatic move”, “disable”) - 禁用自動滑鼠模式。
  • Preference(“automatic move”, “toggle”) - 切換自動滑鼠模式。
  • Preference(“wait for voice”, “enable”) - 自動前進時,等待當前語音播放完畢。
  • Preference(“wait for voice”, “disable”) - 自動前進時,不等待當前語音播放完畢。
  • Preference(“wait for voice”, “toggle”) - 切換語音等待模式。
  • Preference(“voice sustain”, “enable”) - 當前互動行為中維持語音。
  • Preference(“voice sustain”, “disable”) - 當前互動行為中不維持語音。
  • Preference(“voice sustain”, “toggle”) - 切換語音維持模式。
  • Preference(“music mute”, “enable”) - 音樂混合器靜音。
  • Preference(“music mute”, “disable”) - 取消音樂混合器靜音。
  • Preference(“music mute”, “toggle”) - 切換音樂靜音狀態。
  • Preference(“sound mute”, “enable”) - 音效混合器靜音。
  • Preference(“sound mute”, “disable”) - 取消音效混合器靜音。
  • Preference(“sound mute”, “toggle”) - 切換音效靜音狀態。
  • Preference(“voice mute”, “enable”) - 語音混合器靜音。
  • Preference(“voice mute”, “disable”) - 取消語音混合器靜音。
  • Preference(“voice mute”, “toggle”) - 切換語音靜音狀態。
  • Preference(“mixer <mixer> mute”, “enable”) - 將指定的混合器靜音。
  • Preference(“mixer <mixer> mute”, “disable”) - 取消指定的混合器靜音。
  • Preference(“mixer <mixer> mute”, “toggle”) - 切換指定的混合器靜音狀態。
  • Preference(“all mute”, “enable”) - 所有混合器靜音。
  • Preference(“all mute”, “disable”) - 取消所有混合器靜音。
  • Preference(“all mute”, “toggle”) - 切換所有混合器靜音狀態。
  • Preference(“music volume”, 0.5) - 設置音樂音量。
  • Preference(“sound volume”, 0.5) - 設置音效音量。
  • Preference(“voice volume”, 0.5) - 設置語音音量。
  • Preference(“mixer <mixer> volume”, 0.5) - 設置指定混合器音量。
  • Preference(“emphasize audio”, “enable”) - 加強在config.emphasize_audio_channels中定義的音訊通道。
  • Preference(“emphasize audio”, “disable”) - 取消加強在config.emphasize_audio_channels中定義的音訊通道。
  • Preference(“emphasize audio”, “toggle”) - 切換音訊加強狀態。
  • Preference(“self voicing”, “enable”) - 啟用自動語音。
  • Preference(“self voicing”, “disable”) - 禁用自動語音。
  • Preference(“self voicing”, “toggle”) - 切換自動語音模式。
  • Preference(“clipboard voicing”, “enable”) - 啟用剪貼板語音。
  • Preference(“clipboard voicing”, “disable”) - 禁用剪貼板語音。
  • Preference(“clipboard voicing”, “toggle”) - 切換剪貼板語音狀態。
  • Preference(“debug voicing”, “enable”) - 啟用自動語音debug。
  • Preference(“debug voicing”, “disable”) - 禁用自動語音debug。
  • Preference(“debug voicing”, “toggle”) - 切換自動語音debug狀態。
  • Preference(“rollback side”, “left”) - 觸摸螢幕左側觸發回滾。
  • Preference(“rollback side”, “right”) - 觸摸螢幕右側觸發回滾。
  • Preference(“rollback side”, “disable”) - 觸摸螢幕不觸發回滾。
  • Preference(“gl powersave”, True) - 使用省電模式降低幀率。
  • Preference(“gl powersave”, False) - 不使用省電模式降低幀率。
  • Preference(“gl powersave”, “auto”) - 使用電池情況下自動啟用省電模式。
  • Preference(“gl framerate”, None) - 運行時顯示幀率。
  • Preference(“gl framerate”, 60) - 在給定的幀率下運行。
  • Preference(“gl tearing”, True) - (設備性能不足時)拖慢而不是跳幀。
  • Preference(“gl tearing”, False) - (設備性能不足時)跳幀而不是拖慢。
  • Preference(“font transform”, “opendyslexic”) - 將字體轉為opendyslexic(譯者註:為閱讀障礙人群設計的字體)的配置項。
  • Preference(“font transform”, “dejavusans”) - 將字體轉為deja vu sans的配置項。
  • Preference(“font transform”, None) - 禁用字體轉換。
  • Preference(“font size”, 1.0) - 字號縮放因子配置項。
  • Preference(“font line spacing”, 1.0) - 字體行距縮放因子配置項。
  • Preference(“system cursor”, “enable”) - 使用系統貫標,忽略 config.mouse。
  • Preference(“system cursor”, “disable”) - 使用config.mouse的游標。
  • Preference(“system cursor”, “toggle”) - 切換系統游標。

可以與條(bar)一起使用的值如下:

  • Preference(“text speed”)
  • Preference(“auto-forward time”)
  • Preference(“music volume”)
  • Preference(“sound volume”)
  • Preference(“voice volume”)
  • Preference(“mixer <mixer> volume”)
  • Preference(“self voicing volume drop”)
  • Preference(“font size”)
  • Preference(“font line spacing”)

range 參數可以指定某個條(bar)的數值範圍。例如,“text speed”的預設值是200cps。“auto-forward time”的預設值是每段文本30秒。

GetCharacterVolume(voice_tag) link

該函數根據關聯的語音標籤(tag),返回一個介於0.0到1.0之間的數值,表示對應 voice 聲道最大音量的一個比例。

遊戲手把 link

這些函數和行為跟遊戲手把一起工作。

GamepadCalibrate() link

調用手把校正的行為。

GamepadExists(developer=True) link

檢測手把是否存在的函數。存在返回True,不存在返回False。

developer
強制該函數返回True,config.developer必須配置為True。

文件函數 link

這些函數返回關於文件的有用訊息。它們使用相同的默認頁面(page)相關的文件行為。

FileCurrentPage() link

將當前文件頁面(page)以字串返回。

FileCurrentScreenshot(empty=None, **properties) link

一個螢幕幕截圖的可顯示控制項。其將保存你在當前文件中,前提是進入了菜單或使用 FileTakeScreenshot() 採集了螢幕截圖。

如果沒有當前螢幕截圖,對應的位置上顯示 empty 的圖像。(如果 empty 是空值None,預設為 Null() 。)

FileJson(name, key=None, empty=None, missing=None, page=None) link

截圖與文件 name 關聯的Json訊息。

如果 key 為None,返回整個Json對象。如果存檔槽位為空,則返回 empty

如果 key 不為空,則返回json[key],前提是 key 在存檔json對象中有定義。如果存檔存在但不包含 key ,就返回 missing 。如果存檔槽位為空,則返回 empty

使用 config.save_json_callbacks() 註冊的回調函數可以用於在存檔槽位中添加Json。

FileLoadable(name, page=None) link

該函數在文件可載入的情況下返回True,否則返回False。

FileNewest(name, page=None) link

如果文件是最新版本返回True,否則返回False。

FilePageName(auto=u'a', quick=u'q') link

以字串形式返回當前文件頁面(page)名稱。如果是一個普通頁面(page),該函數返回頁面編號。否則,返回 autoquick

FileSaveName(name, empty=u'', page=None) link

返回文件保存時生效的存檔名,如果文件不存在則返回 empty

FileScreenshot(name, empty=None, page=None) link

返回給定那個文件相關的螢幕截圖。如果文件不能載入,返回 empty ,前提 empty 的值不是None。在文件不能載入且 empty 為空的情況下,一個空的可視組件會被創建。

返回值是一個可顯示對象。

FileSlotName(slot, slots_per_page, auto=u'a', quick=u'q', format=u'%s%d') link

返回編號後的槽位名。前提是普通頁面(page)下的槽位都按順序從1開始編號,並且頁面也從1開始編號。當槽位編號為2,每個頁面槽位數(slots_per_page)為10,其他變數都是預設值的情況下:

  • 顯示第一頁面時,返回“2”。
  • 顯示第二頁面時,返回“12”。
  • 顯示自動頁面時,返回“a2”。
  • 顯示快速存檔頁面時,返回“q2”。
slot
接入的槽位編號。
slots_per_page
每頁槽位數量。
auto
自動存檔頁面的前綴。
quick
快速存檔頁面的前綴。
format
格式程式碼。包含兩部分:一個頁面前綴字串,一個槽位編號整數。
FileTime(name, format=u'%b %d, %H:%M', empty=u'', page=None) link

返回文件保存時間,格式根據 format 顯示。如果未找到文件,返回 empty

返回值是一個字串。

FileUsedSlots(page=None, highest_first=True) link

返回頁面上所有可用的經過編號的文件列表。

page
待掃描的頁面名。若為None,就使用當前頁面。
highest_first
若為True,列表內文件按編號從大到小排序。否則,列表內文件按編號從小到大排序。

頭像函數 link

該函數返回使用的頭像。

SideImage() link

返回與當前發言角色相關的頭像。如果頭像不存在則返回一個空的可視組件。

Tooltips link

所有可視組件上可用的tooltip特性和GetTooltip函數都可以接入tooltip。當可視組件獲得焦點時,GetTooltip函數會返回這個組件的tooltip特性的值。

這裡是一個樣例::

screen tooltip_example():
    vbox:
        textbutton "北":
            action Return("n")
            tooltip "去約見北極熊。"

        textbutton "南":
            action Return("s")
            tooltip "前往熱帶。"

        textbutton "東":
            action Return("e")
            tooltip "我們可以擁抱黎明。"

        textbutton "西":
            action Return("w")
            tooltip "去欣賞最美的日落。"

        $ tooltip = GetTooltip()

        if tooltip:
            text "[tooltip]"
GetTooltip(screen=None) link

返回當前獲得焦點的可視組件的tooltip,如果可視組件未獲得焦點則返回None。

screen
如果非空,這個參數應該是某個界面的名稱或者標籤(tag)。如果獲得焦點的可視組件是界面的一部分,則該函數隻返回tooltip。

傳統方法 link

Warning

這種傳統方法已被廢棄,並使用上面說的方法替代。不過你可能會在一些老版本的項目中見到它。

當按鈕處於指針懸停狀態時,tooltip類會改變界面。

class Tooltip(default) link

當滑鼠指針懸停在某個區域上時,一個tooltip對象可以用於提示對應界面的功能。

tooltip對象有一個 value 欄位,當tooltip對象被創建時會通過構造器傳入 default 作為預設值。當透過tooltip創建的某個按鈕行為被使用時,value欄位就會根據關聯的行為改變對應值。

Action(value) link

將按鈕的hovered特性對應的行為返回。當按鈕處於指針懸停狀態時,tooltip的value欄位會被設置為 value 。當按鈕失去焦點時,tooltip的value欄位會恢復為預設值。

在某個界面使用tooltip時,常用做法是在default語句中創建tooltip對象。tooltip的值和行為的方法可以在界面中使用。使用時可以按任何順序——在行為執行前就可以使用tooltip的值。

tooltip可以使用任何類型的值。在下面的樣例中,我們使用text語句在界面中顯示字串,使用add語句添加可視組件也是可行的。還可以設計更多複雜的行為。

screen tooltip_test:

    default tt = Tooltip("沒有選擇任何按鈕。")

    frame:
        xfill True

        has vbox

        textbutton "One.":
            action Return(1)
            hovered tt.Action("The loneliest number.")

        textbutton "Two.":
            action Return(2)
            hovered tt.Action("Is what it takes.")

        textbutton "Three.":
            action Return(3)
            hovered tt.Action("A crowd.")

        text tt.value