重复更改运行时中间的键映射

时间:2014-02-27 22:38:13

标签: python configuration runtime game-engine keymapping

快速信息:这是针对基于python构建的Renpy Visual Novel游戏引擎(在Github上提供)。

我想要做的是将键映射的['dismiss']变量更改为null,同时播放一系列转换,以便读者无法跳过场景。在场景结束后,我想重新启用默认['dismiss'],以便用户可以继续阅读VN。

我目前在脚本中的内容是:

$ enter_off()
##################
# Animated Intro #
##################
scene bg_sky_winter_sunny with dissolve300s
$ enter_on()

在代码的另一部分中定义:

python early:
    # turns enter off
    # Also tried # config.keymap['dismiss'] = [] # Same result as below.
    def enter_off():
        config.keymap['dismiss'].remove('mouseup_1')
        config.keymap['dismiss'].remove('K_RETURN')
        config.keymap['dismiss'].remove('K_SPACE')
        config.keymap['dismiss'].remove('K_KP_ENTER')
        config.keymap['dismiss'].remove('joy_dismiss')
        return

    # turns enter on
    def enter_on():
        config.keymap['dismiss'].append('mouseup_1')
        config.keymap['dismiss'].append('K_RETURN')
        config.keymap['dismiss'].append('K_SPACE')
        config.keymap['dismiss'].append('K_KP_ENTER')
        config.keymap['dismiss'].append('joy_dismiss')
        return

    # copy of the default keymap in renpy-6.16.5-sdk\renpy\common\00keymap.rpy
    def full_kb():
        # the rest of the code is long and unnecessary for the question.

现在,我遇到的问题是当我使用第一个代码块进行介绍时,dismiss变量按预期设置为null,但在介绍结束并且场景发生变化后,{{ 1}}无法正常工作,并且不会更新引擎以包含enter_on()中的值,也不会将值添加到dismiss。我基本上看起来无处不在,但由于缺乏适当的文档,我无法弄清楚如何让它工作。

以下是一些指向有一些信息的地方的链接:

Renpy Keymap文档:http://www.renpy.org/wiki/renpy/doc/reference/Keymap

Renpy源代码:https://github.com/renpy/renpy

任何指针都很棒!

1 个答案:

答案 0 :(得分:0)

询问lemmasoft论坛并收到答复。点击此处:http://lemmasoft.renai.us/forums/viewtopic.php?f=8&t=25588