马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
本帖最后由 Zealot001 于 2021-7-22 15:32 编辑
最近有一些想法,想做一些动态背景,比如某些场景里有一些闪烁的灯光,或者天空有小鸟飞过等等最开始是想着用gif无背景动图来解决
上LSF上问了一下,得到的答复是,gif格式太老,renpy不支持,并告诉我可以用DynamicDisplayable这个功能实现。
于是去了解一下
但是现在出现了一个问题,比如
[RenPy] 纯文本查看 复制代码 default score = 0
image scoreimage = ConditionSwitch(
"score <= 10", Solid('#f00'),
"score > 10", Solid('#0f0'),
"True", Solid('#00f'))
image countdown = DynamicDisplayable(show_countdown)
init python:
def dd_cursor_position(st, at):
x, y = renpy.get_mouse_pos()
if (x<=750 or (x>=750 and x<=1170 and y<=450) or x>=1170):
store.score += 1
renpy.hide("scoreimage")
renpy.show("scoreimage")
return Text("{size=-5}%d - %d: %d"%(x, y, score)), .1
elif (x>=750 and x<=1070 and y>=450):
store.score -= 0
renpy.hide("scoreimage")
renpy.show("scoreimage")
return Text("{size=-5}%d - %d: %d"%(x, y, score)), .1
return Text("{size=-5}%d - %d"%(x, y)), .1
def show_countdown(st, at):
if st > 5.0:
return Text("0.0"), None
else:
d = Text("{:.1f}".format(5.0 - st))
return d, 0.1
screen Mouse_Position():
zorder 10**10
add DynamicDisplayable(dd_cursor_position) xpos 10 yalign 0.99
add DynamicDisplayable(show_countdown) at truecenter
timer 0.5 action Function(renpy.restart_interaction)
label start:
scene testing bkgd
show screen Mouse_Position
#call screen Mouse_Position
"按下空格结束~"
label end:
"Your score is [score]"
return
理论上想达到的效果是:获取鼠标位置,鼠标位置不在区域内则加分,在区域内就减分,分数达到10,场景发生变化(这里是颜色变化)
但实际上,DynamicDisplayable似乎并不会自动重新绘制,不管程序运行结果如何,它只在开始和结束的时候各绘制一次场景
如果想要获得场景自动变化的效果,那我就需要在screen标签下增加判定语句,这样的话,DynamicDisplayable就并非动态显示了。
我该怎么定义,才能让我只调用一个DynamicDisplayable,就让图片动起来呢?
|