製作選像分支
作者: NingNing
創建日期: 2022-05-20
最後更新: 2022-12-06
選像分支就是像這樣的東西:
讓玩家有至少2個選擇可以做出,你也可以加上一些變量(variable)讓玩家的選擇影響後面的劇情或是增加好感度
前期準備
在開始之前先讓我們有2個可以對話的角色吧
define a=Character("路人A")
define b=Character("路人B")
另外我們也可以在放一個背景在後面
image park = "images/bg/park.jpg"
除了角色以外在讓我們設置一些變量(variable)
$cha_aff = 0
$chb_aff = 0
default apple = False
default banana = False
存放數字之類的變量可以使用 $
放文字的話使用 define
或是 default
但是使用default
我認為會比較好因為使用 define
很容易在存檔/讀檔時出問題
建立第一個分支
建立分支 renpy 所使用的代碼是 menu
寫法是這樣:
menu:
"選像1":
"選像2":
Menu
後面要加:
- 記得在每個選項後面要加
:
- 每個選項顯示的字要用2個引號
""
包住 - 在每個選像的
:
後一句可以寫上選了某個選項後要執行的動作
選擇後顯示文字
你可以直接在每個選項的 :
後一句打上對話
像這樣:
menu:
"蘋果":
"蘋果好吃"
"香蕉":
"香蕉好吃"
- "蘋果好吃" 這句話這樣就會顯示在玩家選了🍎蘋果之後
- "香蕉好吃" 這句話這樣就會顯示在玩家選了🍌香蕉之後
如果你要指定某個角色說出 "蘋果好吃" 或是 "香蕉好吃" 的話,只要在句子前面加上角色的代號就可以囉
範例:
menu:
"蘋果":
a "蘋果好吃"
"香蕉":
b "香蕉好吃"
選擇後增加好感
這個時候就可以用到剛剛定義的 $cha_aff = 0
和$chab_aff = 0
使用範例:
menu:
"蘋果":
a "蘋果好吃"
$cha_aff += 1
"香蕉":
b "香蕉好吃"
$chb_aff += 1
確認好感度確實增加了
一個簡單的方式去確認好感有沒有增加你可以像我這麼做
首先創建一個新的 label, label名字的話可以隨便取
範例:
label stats:
"路人A的好感度是 [cha_aff]"
"路人B的好感度是 [chb_aff]"
- 在
[]
裡面的字 = 你的變量 (variable) , 裡面的字必須和你之前定義的名字一樣窩
所以你的代碼可以大概長這樣:
menu:
"蘋果":
a "蘋果好吃"
$cha_aff += 1
jump stats
"香蕉":
b "香蕉好吃"
$chb_aff += 1
jump stats
label stats:
"路人A的好感度是 [cha_aff]"
"路人B的好感度是 [chb_aff]"
根據好感跳轉劇情
或許你想要根據你的好感 (像是可能好感過 10 時) 跳到特殊的劇情
這時你就要使用到 if
語句 和 jump
所以它的代碼可以看起來像這樣
if cha_aff >= chb_aff:
jump next1
else:
jump next2
- 這2句的意思是- 當cha_aff的數值(好感)大於chb_aff時 , 跳到 next1
- 如果ha_aff的數值(好感)小於chb_aff時則跳到 next2
所以代碼可以大概長這樣:
menu:
"蘋果":
a "蘋果好吃"
$cha_aff += 1
"香蕉":
b "香蕉好吃"
$chb_aff += 1
if cha_aff >= chb_aff:
jump next1
else:
jump next2
label next1:
"蘋果超讚, 路人A超喜歡你!"
jump start
label next2:
"香蕉超讚, 路人B超喜歡你!"
根據事件跳轉劇情
除了根據好感以外你也能根據角色經歷過的事件跳轉劇情
這個時候就可以用到剛剛定義的這兩句 - $end1= false
和 $end2 = false
所以你的代碼可以看起來像這樣:
menu:
"蘋果":
a "蘋果好吃"
$apple = True
"香蕉":
b "香蕉好吃"
$banana = True
if apple == True:
jump appleTrue
elif banana == True:
jump bananaTrue
else:
jump start
- 使用這個的話你還要在建立另外2個
label
-appleTrue
和bananaTrue
除了直接跳轉到另一個 Label 外也可以直接把要額外寫的句子加在 if statement 的後面
像是這樣:
menu:
"蘋果":
a "蘋果好吃"
$apple = True
"香蕉":
b "香蕉好吃"
$banana = True
if apple == True:
"恩恩蘋果真的超讚"
elif banana == True:
"恩恩香蕉真的超讚"
else:
"欸欸怎麼會出現這句話呢?"
今天這篇的教學就結束拉~
請我喝杯咖啡: Ko-Fi | PayPal
進入我的官網: Space Of NingNing
訂閱我的YT (不定時會有教學影片) : NingNing
訂閱 Newsletter: 點擊傳送門
聯絡我 / 傳訊息給我
透過 Twitter 聯絡我: @wSmileFlowerw
透過 Email 聯絡我 : youolikeojazz@gmail.com