開發者工具 link

Ren’Py包含一些功能,可以讓開發工作變得更容易。其中很多功能需要配置項 config.developer 設置為True才能執行。

Shift+O 控制台 link

除錯控制台(debug console)可以在交互模式下運行Ren’Py腳本和Python語句,而且能立刻看到運行結果。控制台可以在開發者模式下,或者當 config.console 為True時運行。組合鍵“shift+O”能打開控制台。

控制台可以用於:

  • 跳轉到某個腳本標籤(label)。
  • 在交互模式下嘗試運行Ren’Py腳本語句。
  • 運算某個Python表達式或語句並查看結果。
  • 在遊戲過程中追蹤Python表達式。

Shift+E Editor 幫助與支持 link

配置項 config.editor 允許開發者使用“啟動編輯器”組合鍵(預設是“shift+E”)時,運行指定的編輯器命令。

詳見 集成文本編輯器

Shift+D 開發者菜單 link

config.developer 為True時,使用組合鍵“shift+D”會顯示開發者菜單,並提供下面那些功能的簡易接入。

Shift+R 重新載入腳本 link

config.developer 為True時,使用組合鍵“shift+R”會保存當前遊戲,重新載入遊戲腳本,並重新載入遊戲。這個操作通常會回到你使用“shift+R”之前未修改過的最近那條語句。

這個功能允許開發者使用外部編輯器修改腳本後,不需要退出並重啟Ren’Py就能看到修改後的效果。

需要注意的是遊戲狀態,包含了變數值和場景列表重載後會被重設。這意味著某些語句的執行結果可能也發生了變化,需要回滾並重新執行那些語句才能看到修改後的效果。

Shift+I 樣式檢查 link

config.developer 為True,使用組合鍵“shift+I”能觸發樣式檢查。樣式檢查中會顯示滑鼠指針下面的可視組件列表。並顯示每一個可視組件的類型、樣式和渲染尺寸。

Shift+Y Style 樣式備份 link

config.developer 為True,使用“備份樣式”組合鍵(預設是“shift+Y”),會把Ren’Py知道的所有樣式描述訊息都記錄到文件“sytles.txt”中。樣式描述訊息包括樣式的每一種特性(property),特性的值,以及特性繼承自哪種樣式。

> Fast Skipping link

config.developerconfig.fast_skipping 為True時,使用“快速跳過”快捷鍵(預設是“>”),將觸發遊戲立刻跳到下一個重要互動。出於這種需求,重要互動不由say語句、轉場(transition)和暫停(pause)命令觸發的。通常情況下,快速跳過會直接跳到下一個菜單選項,但也會在用戶自訂的互動行為前停止。

傳送至某行 link

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。

除錯函數 link

renpy.get_filename_line() link

返回當前語句的檔案名和行號的二元元組。

renpy.log(msg) link

config.log() 沒有配置,則不執行任何操作。否則,將打開日誌檔案(如果還沒有打開的話),根據 config.log_width 配置的寬度將訊息格式化,並列印在日誌檔案上。

renpy.unwatch(expr) link

停止對給定Python表達式的觀察(watch)。

renpy.watch(expr) link

觀察(watch)給定Python表達式,訊息顯示在螢幕的右上角。