RenPy中文空间

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 105|回复: 9

[有回复] 一个很奇怪的action 触发问题

[复制链接]
发表于 2018-4-7 14:36:27 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 法海叔叔 于 2018-4-7 16:30 编辑

[RenPy] 纯文本查看 复制代码
init -1 python:
    import renpy.store as store
    import renpy.exports as renpy 
    from operator import attrgetter 
    inv_page = 0
    item = None
    class Inventory(store.object):
        def __init__(self, money=0):
            self.money = money
            self.items = []
        def add(self, item): 
            self.items.append(item)
        def drop(self, item):
            self.items.remove(item)
        def buy(self, item):
            if self.money >= item.cost:
                self.items.append(item)
                self.money -= item.cost
        def earn(self, amount):
            self.money += amount
        def drop_money(self, amount):
            self.money -= amount
    def item_use():
        item.use()


[RenPy] 纯文本查看 复制代码
imagebutton :
    pos (0,-0)
    idle Transform("money_idle.png")
    action [Play("sound", "music/UI_Success.mp3"),inventory.earn_money(1000)]

action 是点击触发的呀,为什么我点击加钱,但是,切换场景也加钱呢??
发表于 2018-4-7 16:27:08 | 显示全部楼层
本帖最后由 龙氏 于 2018-4-7 16:32 编辑

给的信息太少,不如直接给个示例:
[RenPy] 纯文本查看 复制代码
screen money:
    textbutton "金钱+1" pos(0,0.1) action SetVariable("jinqian",jinqian+1) # 加金钱按钮,变量:jinqian 是控制金钱数目的。
    text "[jinqian]" # 显示金钱数目。

# 游戏从这里开始。
label start:
    $ jinqian = 0 # 金钱默认数目。
    call screen money

或者下面一般在剧情里使用吧:
[RenPy] 纯文本查看 复制代码
screen money:
    textbutton "金钱+1" pos(0,0.1) action SetVariable("jinqian",jinqian+1) # 加金钱按钮。

# 游戏从这里开始。
label start:

    $ jinqian = 0 # 金钱默认数目。
    "当前金钱:[jinqian]"

    show screen money

    "现在点击按钮"# 注意点击次数
    "点击过按钮了?"

    "再次显示金钱:[jinqian]" # 再次显示金钱数目

自己再参考检查或修改吧
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-4-7 16:43:35 | 显示全部楼层
:(我用的钱在数组里面。。。单独变量会加,也正常。就是。。。。你看我加钱是“inventory.earn_money(1000)”这样加1000
回复 支持 反对

使用道具 举报

发表于 2018-4-7 19:14:49 | 显示全部楼层
法海叔叔 发表于 2018-4-7 16:43
我用的钱在数组里面。。。单独变量会加,也正常。就是。。。。你看我加钱是“inventory.earn_money(1000) ...

哇,这么快就用上了Python
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-4-7 21:45:59 | 显示全部楼层
:(自己辛苦的自学python,写了一个多星期发现,有现成的框架 =_=# 不过收获不小,一玩html的真的好难适应python,各种颠覆。大部分出错倒不是逻辑什么的,而是不小心按了一小点空格什么之类的小问题。。最最头大的是,前后顺序都有很大的关系!!!!
回复 支持 反对

使用道具 举报

发表于 2018-4-8 09:30:05 | 显示全部楼层
仅从目前的代码看不出问题。建议定义一个不同的图片表示selected_hover状态,看看换场景的时候是否出现button图片切换的情况。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-4-8 21:31:02 | 显示全部楼层
被诅咒的章鱼 发表于 2018-4-8 09:30
仅从目前的代码看不出问题。建议定义一个不同的图片表示selected_hover状态,看看换场景的时候是否出现butt ...

用action SetVariable方式就没问题。很奇怪,我用你的方式测试一下,切换场景时也正常。但钱还是加。
回复 支持 反对

使用道具 举报

发表于 2018-4-11 12:03:14 | 显示全部楼层
法海叔叔 发表于 2018-4-8 21:31
用action SetVariable方式就没问题。很奇怪,我用你的方式测试一下,切换场景时也正常。但钱还是加。 ...

等一下……
你在Inventory类里定义的方法名是“earn”,action里写的是earn_money?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-4-11 16:08:13 | 显示全部楼层
被诅咒的章鱼 发表于 2018-4-11 12:03
等一下……
你在Inventory类里定义的方法名是“earn”,action里写的是earn_money? ...

这样是不是不对?
回复 支持 反对

使用道具 举报

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

不,肯定是Ren'Py的错!
居然运行不报错,辣鸡引擎
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2018-10-24 10:34 , Processed in 0.032337 second(s), 21 queries , File On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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