找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 411|回复: 0

[教程] 继续游戏按钮的写法 action类继承例子

[复制链接]
发表于 2023-4-13 12:21:29 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×



代码:
[RenPy] 纯文本查看 复制代码
## 二改自[url=https://lemmasoft.renai.us/forums/viewtopic.php?t=48154]https://lemmasoft.renai.us/forums/viewtopic.php?t=48154[/url]
## 增加了注释,删掉了不必要的代码。

init -999 python:
    ## 行为
    ## [url=https://doc.renpy.cn/zh-CN/screen_python.html#action]https://doc.renpy.cn/zh-CN/screen_python.html#action[/url]
    ## 
    ## 继承Action类对象的好处是,允许你重写类的方法(method),
    ## 比如确认某个按钮什么情况下被选中的方法,以及判断按钮何时可用。
    class Continue(Action):
        """
        加载最新一个存档
        """
        ## 按钮被按的时候会执行的行为。
        def __call__(self):

            ## 获得最新存档的页面和槽位
            ## 如果没有最新存档,按钮不可以交互。
            newest_page, newest_name = self.get_newest_slot()

            ## 加载最新存档
            ## confirm=False 不弹窗让玩家确认
            FileLoad(newest_name, confirm=False, page=newest_page)()

        def get_sensitive(self):
            ## 如果没有最新存档,返回False。
            ## 按钮不可以交互
            if not renpy.newest_slot():
                return False

            newest_page, newest_name = self.get_newest_slot()

            # 如果最新存档是 '_reload-*'
            # 也不可以加载。
            if newest_page == '_reload':
                return False
                
            # 如果当前存档可以加载,按钮就可以交互。
            # 否则不可以交互。
            return FileLoadable(newest_name, page=newest_page)

        def get_newest_slot(self):
            """
            返回最新存档的页面和槽位
            """
            newest = renpy.newest_slot()

            if newest:
                page, name = newest.split("-")
                return page, name

label start():
    scene street day
    show boss happy
    "test1"
    "test2"
    "test3"
    "test4"
    "test5"
    return


需要修改主界面,放入这个按钮。
可以放在读取游戏上面。
[RenPy] 纯文本查看 复制代码
textbutton _("继续游戏") action Continue()
textbutton _("读取游戏") action ShowMenu("load")



您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|RenPy中文空间 ( 苏ICP备17067825号|苏公网安备 32092302000068号 )

GMT+8, 2024-5-15 14:13 , Processed in 0.072677 second(s), 24 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表