马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
本帖最后由 Zealot001 于 2021-7-15 22:47 编辑
[RenPy] 纯文本查看 复制代码 default flag001 = 0
init -1 python:
import requests
import random
class plusvar(object):
def __init__(self, plusx):
self.plusx = plusx
@classmethod
def plus_var_fun01(self):
global flag001
flag001 = flag001 + random.randint(5,8)
if flag001 >= 50:
flag001 = 50
def plus_var_fun():
global flag001
flag001 = flag001 + random.randint(5,8)
if flag001 >= 50:
flag001 = 50
def red_var_fun():
global flag001
flag001 = flag001 - random.randint(5,8)
if flag001 <= 0:
flag001 = 0
label start:
$ flag001 = 20
scene black
call screen attack_fun
return
screen attack_fun():
frame:
xcenter 0.25
ycenter 0.25
xsize 180
ysize 320
vbox:
bar:
value AnimatedValue(value=flag001, range=50, delay=0.3, old_value=None)
xsize 170
xcenter 0.5
if flag001 < 50:
textbutton "治疗":
text_size 40
text_outlines[(absolute(2), "#effdff", absolute(0), absolute(0))]
text_color "#ed54de"
text_selected_color "#32e0fc"
action Function(plusvar.plus_var_fun01)
elif flag001 >= 50:
textbutton "满了,归零":
text_size 40
text_outlines[(absolute(2), "#effdff", absolute(0), absolute(0))]
text_color "#ed54de"
text_selected_color "#32e0fc"
action SetVariable("flag001", 0)
if flag001 > 0:
textbutton "伤害":
text_size 40
text_outlines[(absolute(2), "#effdff", absolute(0), absolute(0))]
text_color "#ed54de"
text_selected_color "#32e0fc"
action Function(red_var_fun)
elif 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", 50)
text "血量是:[flag001]"
直接用function调用函数和类方法都可以让代码正常运行,也没有预加载导致的数据混乱。
但是在看文档的时候,function的介绍是
Function(callable, *args, **kwargs)
这个行为会使用 args 和 kwargs 调用 callable 。
callable
可调用的对象。
args
传给 callable` 的固定位置入参。
kwargs
传给 callable 的关键词入参。
这个行为使用一个可选的 _update_screens 关键词参数,而且这个参数默认为True。参数为True时,函数返回后,互动行动会重新开始,各界面会更新。
如果函数返回一个非空值,互动行为会停止并返回那个值。(使用call screen语句得到的返回值放置在 _return 变量中。)
没有入参,直接用全局变量的话,想复用有点麻烦,假如说我现在的函数追加了一个入参
[RenPy] 纯文本查看 复制代码 def plus_var_funX(x): x = x + random.randint(5,8)
if x >= 50:
x = 50
action Function(plus_var_funX, x=flag001)#入参这部分的格式,按照文档里的解释,没看懂
相应的action Function(red_var_fun)里面的参数要怎么才能正确传入呢?然后对应到数值变化呢?
我试过了action Function(red_var_fun, flag001)和action Function(red_var_fun, x=flag001)
都没有办法正常运行,想请教一下具体的写法是什么?
|