这个方法有一些潜在的问题。
最新代码:https://www.renpy.cn/forum.php?mod=viewthread&tid=1236
更新代码如下:
这篇文章会讲下如何在在游戏中禁止用户和界面交互,以及暂时禁止快捷键的办法。
在有些时候变换不希望被用户打断,或者变幻在界面上面演出,不希望用户再按界面的按钮。在这些情况下,需要让用户暂时不能和界面交互。
在论坛搜索之后发现了这个帖子:
https://lemmasoft.renai.us/forums/viewtopic.php?t=32309
下面是一个实例的代码。
不希望打断的转场,放在eyecatch这个屏幕里面,然后设定转场是10s。
除此之外,有些快捷键我们也想在一些界面禁止。比如快进(skip),隐藏界面,esc键呼出主菜单等。
关于定制按键映射可以看文档的这里:
https://www.renpy.cn/doc/keymap.html
我的实现例子
_game_menu_screen 是按esc键会出现的界面,默认是存档界面,这个也可以自己写个界面替换。
是否可以快进这个变量,可以在存储区配置项的文档中找到,里面还有很多别的有用的配置项,比如是否可以回滚。
https://www.renpy.cn/doc/store_variables.html#var-_autosave
最后是_windows_hidden 这个变量,是一个文档里都没有提到,搜索都搜不到的变量。最近在接一个游戏制作的外包,对方制作人要求在一个界面禁用隐藏界面。因为游戏本来就是界面交互,要是玩家不小心按到了,结果界面没有怎么办。尝试通过修改按键映射,以及在界面赋予按键新的功能来解决,但是都不行。对方制作人提出可以用这个变量,他是看common文件夹里的00keymap.rpy这个文件的具体代码得知这个变量的。
具体代码如下
可以看到如果这个_windows_hidden是True的话,就不会执行下面的语句了,从而达到了禁止的效果。