找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 14233|回复: 9

[已解决] 有人知道renpy怎么消除事件吗?

[复制链接]
发表于 2021-7-12 18:51:42 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 qwe3147969113 于 2021-7-13 09:07 编辑

具体情况是这样的,目前我运行两个相同的事件在一起会有冲突,引擎默认只会运行其中一个事件(即使是过了renpy的检查)
这种情况我就在bar的条上发现了,当然我尝试过用jump跳转没用
此外这个代码是引用这位大佬提供的:https://www.renpy.cn/home.php?mod=space&uid=216
完整具体代码如下:

[RenPy] 纯文本查看 复制代码
screen single_stat(name, hp, hp_max, lv, ex, ex_max,xalign):

    frame:
        xalign xalign

        vbox:
            spacing 5

            hbox:
                text "[name!t]" min_width 220
                text _(" Lv. [lv]")

            hbox:
                text _("HP"):
                    min_width 40
                    yalign 0.5

                bar:
                    value AnimatedValue(hp, hp_max, 1.0)
                    xmaximum 180
                    ysize 26

                text " [hp]/[hp_max]":
                    yalign 0.5

            hbox:
                text _("ex"):
                    min_width 40
                    yalign 0.5


                bar:
                    value AnimatedValue(ex, ex_max,1.0)
                    xmaximum 180
                    ysize 26

                text " [ex]/[ex_max]":
                    yalign 0.5


screen stats():

    use single_stat(_("英雄"), hero_hp, hero_hp_max, hero_lv, hero_ex, hero_ex_max, 0.0)
    use single_stat(_("魔兽"), Devil_hp, Devil_hp_max, Devil_lv,Devil_ex, Devil_ex_max, 1.0)

## 英雄 数值。
default hero_hp = 50
default hero_hp_max = 100
default hero_lv = 10
default hero_ex = 10
default hero_ex_max = 999

## 魔王 数值。
default Devil_hp = 100
default Devil_hp_max = 100
default Devil_lv = 90
default Devil_ex = 90
default Devil_ex_max = 999

# 游戏在此开始。
label start:

    show screen stats
    with dissolve

    "这是英雄第一次治疗"
    $ hero_hp = 100
    "英雄第一次治疗完成。"


    "这是第一次魔王等级"
    $ Devil_lv = 10

    "第一次魔王等级是10。"

    hide screen stats
    "关闭第一次对话框"
###############################################################分割线
###############################################################分割线  
########################第二次运行##############################
screen single_stat(name, hp, hp_max, lv, ex, ex_max,xalign):

    frame:
        xalign xalign

        vbox:
            spacing 5

            hbox:
                text "[name!t]" min_width 220
                text _(" Lv. [lv]")

            hbox:
                text _("HP"):
                    min_width 40
                    yalign 0.5

                bar:
                    value AnimatedValue(hp, hp_max, 1.0)
                    xmaximum 180
                    ysize 26

                text " [hp]/[hp_max]":
                    yalign 0.5

            hbox:
                text _("ex"):
                    min_width 40
                    yalign 0.5


                bar:
                    value AnimatedValue(ex, ex_max,1.0)
                    xmaximum 180
                    ysize 26

                text " [ex]/[ex_max]":
                    yalign 0.5

screen stats():

    use single_stat(_("勇者"), hero_hp1, hero_hp_max1, hero_lv1, hero_ex1, hero_ex_max1, 0.0)
    use single_stat(_("魔王"), Devil_hp1, Devil_hp_max1, Devil_lv1,Devil_ex1, Devil_ex_max1, 1.0)

## 英雄 数值。
default hero_hp1 = 90
default hero_hp_max1 = 888
default hero_lv1 = 1
default hero_ex1 = 10
default hero_ex_max1 = 888

## 魔王 数值。
default Devil_hp1 = 100
default Devil_hp_max1 = 888
default Devil_lv1 = 80
default Devil_ex1 = 80
default Devil_ex_max1 = 888

# 游戏在此开始。
label start2:

    show screen stats
    with dissolve

    "这是英雄第二次治疗。"
    $ hero_hp = 100
    "英雄第二次治疗完成。"


    "第二次魔王等级"
    $ Devil_lv = 20

    "第二次魔王等级为20级别。"

    hide screen stats
    "关闭第二次数值界面"




最后我目前尝试了会有两种结果一种是游戏正常运行数值/人物名字不会变动
尝试新建文件来试也无济于事


发表于 2021-7-13 10:51:16 | 显示全部楼层
改成满足基本需求的程度:
[RenPy] 纯文本查看 复制代码
screen single_stat(name, hp, hp_max, lv, ex, ex_max,xalign):
 
    frame:
        xalign xalign
 
        vbox:
            spacing 5
 
            hbox:
                text "[name!t]" min_width 220
                text _(" Lv. [lv]")
 
            hbox:
                text _("HP"):
                    min_width 40
                    yalign 0.5
 
                bar:
                    value AnimatedValue(hp, hp_max, 1.0)
                    xmaximum 180
                    ysize 26
 
                text " [hp]/[hp_max]":
                    yalign 0.5
 
            hbox:
                text _("ex"):
                    min_width 40
                    yalign 0.5
 
 
                bar:
                    value AnimatedValue(ex, ex_max,1.0)
                    xmaximum 180
                    ysize 26
 
                text " [ex]/[ex_max]":
                    yalign 0.5
 
 
screen stats():
 
    use single_stat(_("英雄"), hero_hp, hero_hp_max, hero_lv, hero_ex, hero_ex_max, 0.0)
    use single_stat(_("魔兽"), Devil_hp, Devil_hp_max, Devil_lv,Devil_ex, Devil_ex_max, 1.0)
 
## 英雄 数值。
default hero_hp = 50
default hero_hp_max = 100
default hero_lv = 10
default hero_ex = 10
default hero_ex_max = 999
 
## 魔王 数值。
default Devil_hp = 100
default Devil_hp_max = 100
default Devil_lv = 90
default Devil_ex = 90
default Devil_ex_max = 999

label main_menu:
    return

# 游戏在此开始。
label start:
 
    show screen stats
    with dissolve
 
    "这是英雄第一次治疗"
    $ hero_hp = 100
    "英雄第一次治疗完成。"
 
 
    "这是第一次魔王等级"
    $ Devil_lv = 10
 
    "第一次魔王等级是10。"
 
    hide screen stats
    "关闭第一次对话框"
###############################################################分割线
###############################################################分割线  
########################第二次运行##############################
 
screen stats2():
 
    use single_stat(_("勇者"), hero_hp1, hero_hp_max1, hero_lv1, hero_ex1, hero_ex_max1, 0.0)
    use single_stat(_("魔王"), Devil_hp1, Devil_hp_max1, Devil_lv1,Devil_ex1, Devil_ex_max1, 1.0)
 
## 英雄 数值。
default hero_hp1 = 90
default hero_hp_max1 = 888
default hero_lv1 = 1
default hero_ex1 = 10
default hero_ex_max1 = 888
 
## 魔王 数值。
default Devil_hp1 = 100
default Devil_hp_max1 = 888
default Devil_lv1 = 80
default Devil_ex1 = 80
default Devil_ex_max1 = 888
 
# 游戏在此开始。
label start2:
 
    show screen stats2
    with dissolve
 
    "这是英雄第二次治疗。"
    $ hero_hp1 = 100
    "英雄第二次治疗完成。"
 
 
    "第二次魔王等级"
    $ Devil_lv1 = 20
 
    "第二次魔王等级为20级别。"
 
    hide screen stats2
    "关闭第二次数值界面"


问题诊断:
1. “事件”在程序设计中是个专有名词,原文叫event。在Ren'Py中一般是指PyGame或操作系统层面的信息,比如鼠标的点击和位置事件、键盘按键事件等。楼主的需求中并不存在事件层面的问题。
2. 实际导致程序表现和设计希望不符的问题是,定义了两个同名的screen。Ren'Py允许同名screen定义,但只会使用其中一个(因为绝大多数人根本不会定义同名screen,所以不清楚具体会使用哪个)。把第二个表现角色状态数值的stats名称改为stats2即可解决这个问题。另外,single_stat界面可以复用,把其中一个删了。至于界面(screen)到底如何定义和使用,请参考文档。
3. 脚本标签start2里修改了数值却没有发生变化的问题,楼主改错变量了。

回复 支持 1 抱歉 0

使用道具 举报

发表于 2021-7-12 21:01:33 | 显示全部楼层
我知道
只要你认真读了中文文档的起步篇,并跟着实例操作,你也会知道,你自己不愿意认真看,别人也帮不了你。
回复 支持 抱歉

使用道具 举报

 楼主| 发表于 2021-7-12 21:16:17 | 显示全部楼层
Zealot001 发表于 2021-7-12 21:01
我知道
只要你认真读了中文文档的起步篇,并跟着实例操作,你也会知道,你自己不愿意认真看,别人也帮不了 ...

那一篇介绍了?能给我链接吗?我是真没找到
回复 支持 抱歉

使用道具 举报

发表于 2021-7-12 22:19:10 | 显示全部楼层
qwe3147969113 发表于 2021-7-12 21:16
那一篇介绍了?能给我链接吗?我是真没找到

入门篇
你问这个问题,说明你没搞清楚screen和label这两个标签的运行原理,看完文档之后如果还不懂,去分享区看莉箩爱萝莉的教程
不过建议看入门篇,入门都不想花心思看,又缺乏编程基础,后面反而会浪费更多时间,比如你说这个问题困扰了你两天,如果你把这两天花在看教程和跟着教程的例子来,用不了两天,可能之花两个小时就解决了。
回复 支持 抱歉

使用道具 举报

发表于 2021-7-13 00:25:34 | 显示全部楼层
光天化日,朗朗乾坤,请不要污人清白。这坨屎一样的代码怎么可能是我提供的……

以后发代码请使用代码格式,坛主花钱找人做了关键字高亮。发帖时只要点上面一排按钮中的左右尖括号<>,然后把代码粘贴进去。楼主的新人帖我帮你编辑过了,以后请自己注意。

楼主的几个问题都过于基础。类似于你说自己要写本书,别人问你准备写什么题材的,然后你反问“什么是题材”……这就让旁人感觉你纯粹是在找乐,完全没有认真投入。

说到钱的问题,看我打了这么多字,楼主先赞助杯咖啡呗,瑞幸还是星巴克就随意了。

收款码

收款码
回复 支持 抱歉

使用道具 举报

 楼主| 发表于 2021-7-13 09:04:09 | 显示全部楼层
本帖最后由 qwe3147969113 于 2021-7-13 09:05 编辑
被诅咒的章鱼 发表于 2021-7-13 00:25
光天化日,朗朗乾坤,请不要污人清白。这坨屎一样的代码怎么可能是我提供的……

以后发代码请使用代码格式 ...

file:///C:/Users/Administrator/Pictures/Screenshot_2021-07-13-09-03-03-588_com.eg.android.jpg
Screenshot_2021-07-13-09-03-03-588_com.eg.android.jpg
回复 支持 抱歉

使用道具 举报

 楼主| 发表于 2021-7-13 09:06:17 | 显示全部楼层
被诅咒的章鱼 发表于 2021-7-13 00:25
光天化日,朗朗乾坤,请不要污人清白。这坨屎一样的代码怎么可能是我提供的……

以后发代码请使用代码格式 ...

我说话讲信用40喝杯咖啡应该够了吧
回复 支持 抱歉

使用道具 举报

 楼主| 发表于 2021-7-13 11:16:37 | 显示全部楼层
被诅咒的章鱼 发表于 2021-7-13 10:51
改成满足基本需求的程度:
[mw_shl_code=renpy,true]screen single_stat(name, hp, hp_max, lv, ex, ex_max ...

这40块钱花的值!大佬慢慢品尝咖啡就好!
回复 支持 抱歉

使用道具 举报

 楼主| 发表于 2021-7-18 14:45:29 | 显示全部楼层
qwe3147969113 发表于 2021-7-13 11:16
这40块钱花的值!大佬慢慢品尝咖啡就好!


回复 支持 抱歉

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-18 14:13 , Processed in 0.076283 second(s), 16 queries , File On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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