找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 18771|回复: 7

[已解决] SetVariable不支持命名空间?

[复制链接]
发表于 2018-4-16 12:40:07 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 龙氏 于 2018-4-17 12:36 编辑

如题

做了个测试代码:
[RenPy] 纯文本查看 复制代码
init python in va:
    bian = 0

screen text1 :

        text "[va.bian]"

        imagebutton: ## 按钮1号
            pos (300,630)
            idle "1.png" # 在非获焦状态下使用的图像。
            hovered SetVariable("va.bian",2) ## 当按钮获焦时执行的操作。
            action NullAction() ## 什么也不做。这个操作可以使按钮能够对hover和unhover事件作出响应。

        imagebutton: ## 按钮1号
            pos (500,630)
            idle "2.png" # 在非获焦状态下使用的图像。
            hovered SetVariable("va.bian",1) ## 当按钮获焦时执行的操作。
            action NullAction() 

会显示“对象没有属性”错误:AttributeError: 'StoreModule' object has no attribute 'va.bian'
下面脚本代码正常运行。
[RenPy] 纯文本查看 复制代码
init python :
    va_bian = 0

screen text1 :

        text "[va_bian]"

        imagebutton: ## 按钮1号
            pos (300,630)
            idle "1.png" # 在非获焦状态下使用的图像。
            hovered SetVariable("va_bian",2) ## 当按钮获焦时执行的操作。
            action NullAction() ## 什么也不做。这个操作可以使按钮能够对hover和unhover事件作出响应。

        imagebutton: ## 按钮1号
            pos (500,630)
            idle "2.png" # 在非获焦状态下使用的图像。
            hovered SetVariable("va_bian",1) ## 当按钮获焦时执行的操作。
            action NullAction() 

变量空间没法用吗?

测试,这va.bian在screen里做 if 判断是可以的。

发表于 2018-4-17 22:52:43 | 显示全部楼层
需要在另一个init python中import自定义的命名空间

[RenPy] 纯文本查看 复制代码
init python in mystore:

    serial_number = 0

    def serial():

        global serial_number
        serial_number += 1
        return serial_number

init python:
    import store.mystore as mystore

label start:
    $ serial = mystore.serial()

回复 支持 抱歉

使用道具 举报

 楼主| 发表于 2018-4-19 21:27:08 | 显示全部楼层
被诅咒的章鱼 发表于 2018-4-17 22:52
需要在另一个init python中import自定义的命名空间

[mw_shl_code=renpy,true]init python in mystore:

没看明白
回复 支持 抱歉

使用道具 举报

发表于 2018-4-20 09:15:45 | 显示全部楼层

init python:
    import store.va as va

在你原来的脚本里加这句试试。
回复 支持 抱歉

使用道具 举报

 楼主| 发表于 2018-4-22 19:34:02 | 显示全部楼层
被诅咒的章鱼 发表于 2018-4-20 09:15
init python:
    import store.va as va

没效果,现在已放弃命名空间。
变量只能这样:
va_a1
va_a2
va_a3
... ...
回复 支持 抱歉

使用道具 举报

发表于 2019-6-6 18:58:13 | 显示全部楼层
其实是可以的,稍等下我来解答
回复 支持 抱歉

使用道具 举报

发表于 2019-6-6 19:27:46 | 显示全部楼层
本帖最后由 cike 于 2019-6-6 19:31 编辑

[RenPy] 纯文本查看 复制代码
init python in space1:
    tvalue = 1

label start:
    scene black
    call screen namespace_screen

screen namespace_screen:
    imagebutton:
        pos(700, 500)
        idle "images/button1.png"
        action [Play("sound", "music/click.wav"), SetVariable("space1.tvalue", 10)]

    if space1.tvalue == 10:
        imagebutton:
            pos(1400, 500)
            idle "images/button2.png"
            action [Play("sound", "music/click.wav"), SetVariable("space1.tvalue", 1)]
可惜上传不了附件
回复 支持 抱歉

使用道具 举报

发表于 2019-6-6 21:29:18 | 显示全部楼层
cike 发表于 2019-6-6 19:27
[mw_shl_code=renpy,true]init python in space1:
    tvalue = 1

在Ren'Py 7.1.1版之前是不支持的,现在已经修复
具体看更新日志:https//doc.renpy.cn/zh-CN/changelog.html#id18
回复 支持 抱歉

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-15 01:34 , Processed in 0.105884 second(s), 24 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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