Ren’Py包含一些功能,可以讓開發工作變得更容易。其中很多功能需要配置項 config.developer
設置為True才能執行。
除錯控制台(debug console)可以在交互模式下運行Ren’Py腳本和Python語句,而且能立刻看到運行結果。控制台可以在開發者模式下,或者當 config.console
為True時運行。組合鍵“shift+O”能打開控制台。
控制台可以用於:
配置項 config.editor
允許開發者使用“啟動編輯器”組合鍵(預設是“shift+E”)時,運行指定的編輯器命令。
詳見 集成文本編輯器 。
當 config.developer
為True時,使用組合鍵“shift+D”會顯示開發者菜單,並提供下面那些功能的簡易接入。
當 config.developer
為True時,使用組合鍵“shift+R”會保存當前遊戲,重新載入遊戲腳本,並重新載入遊戲。這個操作通常會回到你使用“shift+R”之前未修改過的最近那條語句。
這個功能允許開發者使用外部編輯器修改腳本後,不需要退出並重啟Ren’Py就能看到修改後的效果。
需要注意的是遊戲狀態,包含了變數值和場景列表重載後會被重設。這意味著某些語句的執行結果可能也發生了變化,需要回滾並重新執行那些語句才能看到修改後的效果。
當 config.developer
為True,使用組合鍵“shift+I”能觸發樣式檢查。樣式檢查中會顯示滑鼠指針下面的可視組件列表。並顯示每一個可視組件的類型、樣式和渲染尺寸。
當 config.developer
為True,使用“備份樣式”組合鍵(預設是“shift+Y”),會把Ren’Py知道的所有樣式描述訊息都記錄到文件“sytles.txt”中。樣式描述訊息包括樣式的每一種特性(property),特性的值,以及特性繼承自哪種樣式。
當 config.developer
或 config.fast_skipping
為True時,使用“快速跳過”快捷鍵(預設是“>”),將觸發遊戲立刻跳到下一個重要互動。出於這種需求,重要互動不由say語句、轉場(transition)和暫停(pause)命令觸發的。通常情況下,快速跳過會直接跳到下一個菜單選項,但也會在用戶自訂的互動行為前停止。
Ren’Py支持腳本中“傳送(warp)至某行”功能,不需要開發者運行整個腳本到達那處。儘管使用傳送技巧總是會伴隨著一大堆告警(warning)訊息,在提供即時預覽方面依然很常用。
調用傳送功能時,使用命令行運行Ren’Py,使用參數 --warp
,後面再跟上filename:line,這樣就能傳送到需要的那行。舉例:
renpy.exe my_project --warp script.rpy:458
(my_project 是工程基礎目錄的全路徑。)
調用傳送功能時,Ren’Py出列了一系列工作。它首先找到程序中的所有scene語句,然後嘗試找到使用scene語句到達腳本中每條語句的路徑,接著選取最接近目標行的路徑(在目標行前或正好到達目標行)。Ren’Py從找到的語句倒推至某個scene語句,記錄下使用的路徑。然後Ren’Py會執行找到的路徑上所有scene和show、hide語句。最後Ren’Py將主控流程切換到目標語句。
關於傳送功能,有幾條重要事項需要說明。第一條是,傳送時只能檢查單一路徑,這意味著這條路徑是實際執行路徑之一,在其他路徑上可能還是存在bug。總體來說,這條路徑不考慮遊戲邏輯,所以它也可能是一條實際上並不存在的路徑。(對於重流程的遊戲,這的確是個大問題,特別是包含大量Python語句的情況。)
然而,最大的問題是,在傳送的目標語句前的Python語句不會執行。這表示所有變數都是未經初始化的,使用時可能直接讓程序掛掉。為了防止這個問題,創作者可以定義一個腳本標籤(label) after_warp
,寫一些只有傳送後才會執行的語句。這個腳本標籤可以在程序中配置變數,並在預覽中返回。
傳送功能需要 config.developer
設置為True。