马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
本帖最后由 Zealot001 于 2021-7-15 09:28 编辑
功能很简单,按钮按一下,血条相应增加,(当然也可以转为扣血)
因为screen有预加载这个问题,所以计算的部分不能放进screen标签里,不然会有重复计算的问题。
[RenPy] 纯文本查看 复制代码 default varplus_fun = plusvar(0)
default varplus_key = varplus_fun.addvar
default flag001 = 0
init -1 python:
import requests
import random
class plusvar(NoRollback):
var01 = 0
var02 = 0
def __init__(self, randx):
self.randx = randx
@property
def addvar(self):
self.var01 += 3
return self.var01
label start:
$ varplus_key = varplus_fun.addvar
$ flag001 = 0
scene black
call screen attack_fun
# jump talk
return
screen attack_fun():
frame:
xcenter 0.25
ycenter 0.25
xsize 180
ysize 320
vbox:
bar:
value AnimatedValue(value=flag001, range=10, delay=1.0, old_value=None)
xsize 200
xcenter 0.5
if flag001 == 0:
textbutton "治疗":
text_size 40
text_outlines[(absolute(2), "#effdff", absolute(0), absolute(0))]
text_color "#ed54de"
text_selected_color "#32e0fc"
action SetVariable("flag001", 5)
elif flag001 == 5:
textbutton "治疗":
text_size 40
text_outlines[(absolute(2), "#effdff", absolute(0), absolute(0))]
text_color "#ed54de"
text_selected_color "#32e0fc"
action SetVariable("flag001", 10)
else:
textbutton "满了":
text_size 40
text_outlines[(absolute(2), "#effdff", absolute(0), absolute(0))]
text_color "#ed54de"
text_selected_color "#32e0fc"
action Jump("start")
text "[flag001]"
这段代码是根据莉萝爱萝莉的教程改的
我想问的问题在于,SetVariable只能对应把某个固定的值赋予变量,没有办法灵活增加或减少,故而想要完成累加或者递减就很麻烦。
但如果用类方法,设定好递增的值放进去,又会出现预加载导致数值变化不可预期这一副作用。
但如果不能通过screen运算,直接放在label里面,也有一个问题,就是label标签的语句只运行一次,把call screen放进for循环又很奇怪。
请各位大佬支招,我看莉萝爱萝莉有一个实时战斗系统
但不明白其中的原理
|