马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
本帖最后由 天使的遗族 于 2025-7-7 12:52 编辑
实现滚轮向上打开历史记录后,一直写不好向下滚动到底关闭,发现是把判断后执行语句return Return()写成了Return()。
首先你需要重构Adjustment类或者更简单的,继承 Class Adjustment写一个新类MyAdjustment,在这个新类中重构一个change,判断滚动条值大于范围就关闭该screen
[RenPy] 纯文本查看 复制代码 init python:
class MyAdjustment(renpy.display.behavior.Adjustment):
def change(self, value):
if value > self._range and self._value == self._range:
# *Return to the game screen*
return Return()
else:
# Otherwise, just do what the Adjustment normally does
return renpy.display.behavior.Adjustment.change(self, value)
在screen game_menu中
[RenPy] 纯文本查看 复制代码 default adj = MyAdjustment(range = 100,changed =None,adjustable=True)
在其viewport和vpgrid中
[RenPy] 纯文本查看 复制代码 yadjustment adj
即可
参考screen game_menu的全部代码
[RenPy] 纯文本查看 复制代码 screen game_menu(title, scroll=None, yinitial=0.0):
style_prefix "game_menu"
if main_menu:
add gui.main_menu_background
else:
add gui.game_menu_background
frame:
style "game_menu_outer_frame"
hbox:
## 导航部分的预留空间。
frame:
style "game_menu_navigation_frame"
frame:
style "game_menu_content_frame"
if scroll == "viewport":
default adj = MyAdjustment(range = 100,changed =None,adjustable=True)
text str(adj)
viewport:
yadjustment adj
yinitial yinitial
scrollbars "vertical"
mousewheel True
draggable True
pagekeys True
side_yfill True
vbox:
transclude
elif scroll == "vpgrid":
default adj = MyAdjustment(range = 100,changed =None,adjustable=True)
vpgrid:
cols 1
yadjustment adj
yinitial yinitial
scrollbars "vertical"
mousewheel True
draggable True
pagekeys True
side_yfill True
transclude
else:
transclude
if not renpy.get_screen("history"):
use navigation
textbutton _("返回"):
style "return_button"
action Return()
label title
if main_menu:
key "game_menu" action ShowMenu("main_menu")
|