[Ren'Py 教程] 說(shuō)話人高亮的超級(jí)簡(jiǎn)單教程
先上代碼:
回調(diào)函數(shù)
這次使用到了角色回調(diào)函數(shù)(character callback)這個(gè)功能。這個(gè)功能可以在角色說(shuō)話的時(shí)候,進(jìn)行一些操作,比如一個(gè)角色說(shuō)話的時(shí)候,發(fā)出“嗶”的聲音。
在這個(gè)教程中,我們用回調(diào)函數(shù)來(lái)確定是誰(shuí)在說(shuō)話?;卣{(diào)函數(shù)的具體例子還可以參考官方文檔中,角色回調(diào)函數(shù)這個(gè)章節(jié)的代碼。
代碼如下:
和我們自己定義的函數(shù)active對(duì)比,我們的函數(shù)多傳入了name這個(gè)參數(shù)。相應(yīng)的,我們有個(gè)cb_name,來(lái)傳這個(gè)參數(shù)。
回調(diào)函數(shù)只要在角色定義里使用,并且回調(diào)函數(shù)的參數(shù),在角色定義里傳入。名字為本來(lái)的名字,加上cb_這個(gè)前綴。比如我們的參數(shù)是name,這里就是cb_name. cb就是callback的縮寫(xiě)。
ConditionSwitch
基于Python條件表達(dá)式,改變自身顯示內(nèi)容的可視組件。固定位置入?yún)?yīng)該是一組兩個(gè)值的形式,每組分別包含:
包含Python表達(dá)式語(yǔ)句的字符串。
當(dāng)條件表達(dá)式為T(mén)rue時(shí)顯示的組件。
第一條為T(mén)rue的條件表達(dá)式會(huì)顯示自己的可視組件,所以需要保證至少一個(gè)條件表達(dá)式永遠(yuǎn)為T(mén)rue。(摘抄自官方文檔:可視組件(Displayables)這個(gè)章節(jié))
在本教程中,其實(shí)是把不說(shuō)話的角色變暗。
圖像處理器
代碼中用到了圖像處理器,讓原本圖像變暗。
請(qǐng)參考文檔圖像處理器這一章節(jié)。Renpy支持豐富的圖像變幻,比如變灰,變色,模糊,變亮等等。
擴(kuò)展
ConditionSwitch可能滿足不了你的需求,比如你的立繪非常復(fù)雜,Ren'py有疊層式圖案(layered image)來(lái)替代ConditionSwitch,可以參考疊層式圖案這一章節(jié),如果大家有需要,之后也可以寫(xiě)點(diǎn)這方面的教程。
本教程的核心寫(xiě)法參考了論壇里一個(gè)提問(wèn)的帖子,做了一些擴(kuò)展和解釋。
參考資料:
How do you give focus to one character portrait?
https://lemmasoft.renai.us/forums/viewtopic.php?t=43401