制作选像分支
作者: 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