You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Renpy中实现支持粘贴24位随机哈希码的输入功能?

Ren'Py 24位特殊码粘贴输入功能实现方案

该功能可直接通过Ren'Py内置接口实现,无需引入第三方依赖,全平台(除iOS特殊权限限制外)通用。

实现原理

Ren'Py 内置了renpy.get_clipboard()方法可以直接读取系统剪贴板内容,只需要自定义输入框页面,绑定粘贴触发逻辑,自动校验并填充剪贴板中的24位哈希值即可。

完整实现代码

1. 初始化粘贴逻辑

把以下代码放到脚本任意init块中即可:

init python:
    import re
    def paste_hash_code(input_var: str) -> None:
        # 读取并清洗剪贴板内容
        clipboard = renpy.get_clipboard().strip()
        # 可选:增加正则匹配规则,过滤非哈希字符,这里假设你的哈希是小写字母+数字组合
        valid_hash = re.match(r'^[a-z0-9]{24}$', clipboard)
        if valid_hash:
            setattr(store, input_var, clipboard)
            renpy.restart_interaction()
        else:
            renpy.notify("剪贴板中无有效24位特殊码")

2. 自定义带粘贴功能的输入框

新增输入框screen,支持按钮粘贴和Ctrl+V快捷键粘贴:

screen special_code_input():
    # 输入框绑定的变量,默认最大输入长度24位
    default input_val = ""
    frame:
        xalign 0.5
        yalign 0.5
        padding (40, 30)
        vbox:
            spacing 20
            text "请输入24位特殊码:" size 22
            input:
                value VariableInputValue("input_val", length=24)
                width 450
                size 20
            hbox:
                spacing 15
                xalign 0.5
                textbutton "粘贴" size 20 action Function(paste_hash_code, "input_val")
                textbutton "确认" size 20 action If(len(input_val.strip()) == 24, Return(input_val.strip()), Notify("请输入完整24位特殊码"))
                textbutton "取消" size 20 action Hide("special_code_input")
    # 绑定Ctrl+V快捷键触发粘贴
    key "ctrl+v" action Function(paste_hash_code, "input_val")

3. 调用输入框的方法

在需要唤起特殊码输入的剧情节点直接调用即可:

label start:
    "请输入你的专属特殊码领取奖励"
    # 唤起输入框
    call screen special_code_input
    # 获取输入/粘贴的结果
    $ user_hash = _return
    f"你提交的特殊码为:{user_hash}"
    # 后续自行添加特殊码校验逻辑即可

可选优化项

  • 如果你的哈希值支持大写,可以修改正则匹配规则为r'^[a-zA-Z0-9]{24}$'
  • 移动端可以隐藏快捷键绑定,只保留粘贴按钮即可
  • 可以增加输入完成后自动去空格的逻辑,避免用户手动输入时误加空格

内容的提问来源于stack exchange,提问作者yoza yozic

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 12:54:00