找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1287|回复: 7

[求助] 关于rpg交互的问题

[复制链接]
发表于 2022-9-15 13:49:00 | 显示全部楼层 |阅读模式

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

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

×
renpy的特性前缀貌似没有办法在一个按钮被点击时改变它的特性,然后在点击别的按钮时取消前一种特性,并改变别的按钮的特性,问一下大佬们有没有办法实现
[RenPy] 纯文本查看 复制代码
                hbox:
                    button:
                        xsize xfightset
                        ysize yfightset
                        text me.name:
                            size 20
                            color "#000000"
                        action[SetVariable("my",me),SetVariable("choice_button",True)]
                        background Frame(mypartimage)
                        selected_hover_xysize(320,210)









发表于 2022-9-16 02:38:11 | 显示全部楼层
你想问的是不是,点击某个按钮,或者别的按钮,改变某一个按钮的形态?
其实你可以通过,设置一个变量a,点击按钮后改变这个变量a的数值,然后在界面上通过if 判断a的数值,决定显示哪个按钮。
从而达到改变形态的效果。
回复 支持 抱歉

使用道具 举报

 楼主| 发表于 2022-9-16 08:27:47 | 显示全部楼层
blackpineapple 发表于 2022-9-16 02:38
你想问的是不是,点击某个按钮,或者别的按钮,改变某一个按钮的形态?
其实你可以通过,设置一个变量a,点 ...

全部展开的按钮可以这样做,但是这个按钮是遍历出来的)
让楼主感到头疼的就是这里
[RenPy] 纯文本查看 复制代码
           for me in ours:
                hbox:
                    button:
                        xsize xfightset
                        ysize yfightset
                        text me.name:
                            size 20
                            color "#000000"
                        action[SetVariable("my",me),SetVariable("choice_button",True)]
                        background Frame(mypartimage)
                        selected_hover_xysize(320,210)
回复 支持 抱歉

使用道具 举报

发表于 2022-9-16 08:38:43 | 显示全部楼层
信息太少。
建议发个最小化工程上来,说说楼主点了哪个按钮后想改哪个按钮的样式。
回复 支持 抱歉

使用道具 举报

 楼主| 发表于 2022-9-16 08:50:07 | 显示全部楼层
本帖最后由 alicia 于 2022-9-16 09:03 编辑

[RenPy] 纯文本查看 复制代码
################################################################################
## 战斗场景
################################################################################
default roundvalue = 1
default frightfor = say
default xfightset = 300
default yfightset = 200
default fighttext = " "
default mypartimage = "gui/background/partbutton.png"
default youpartimage = "gui/background/partbutton.png"
default choice_button = False
default my = aliax
default your = police

screen screenfight(ours,yours):
        style_prefix "screenfight"

        text fighttext:
            size 30
            align(0.4,0.4)
            at frightfor
        
        vbox:
            xpos 0
            yalign 0.3
            spacing 30
            for me in ours:
                hbox:
                    button:   #这里当点击第一个按钮时改变该数组的其他按钮特性
                        xsize xfightset
                        ysize yfightset
                        text me.name:
                            size 20
                            color "#000000"
                        action[SetVariable("my",me),SetVariable("choice_button",True)]
                        background Frame(mypartimage)
                        selected_hover_xysize(320,210)


                    frame:
                        xysize(200,100)
                        background Frame("gui/background/valueframe.png")
                        vbox:
                            bar:
                                value me.hp
                                range 100
                                bar_vertical False
                                left_bar "gui/bar/hp_barleft.png"
                                right_bar "gui/bar/hp_barright.png"
                                xysize(70,20)
                            bar:
                                value me.mp
                                range 100
                                bar_vertical False
                                left_bar "gui/bar/mp_barleft.png"
                                right_bar "gui/bar/mp_barright.png"
                                xysize(70,20)

        vbox:
            xpos 0.7
            yalign 0.3
            for you in yours:
                hbox:
                    if choice_button == True:
                        button: #与上面同理
                            text you.name:
                                size 20
                                color "#000000"
                            action [SetVariable("your",you),Show("choicescreen")]
                            background Frame(youpartimage)
                    
                    else:
                        frame:
                            text you.name:
                                size 20
                                color "#000000"
                            background Frame(youpartimage)

                    frame:
                        xysize(200,100)
                        background Frame("gui/background/valueframe.png")
                        vbox:
                            bar:
                                value you.hp
                                range 100
                                bar_vertical False
                                left_bar "gui/bar/hp_barleft.png"
                                right_bar "gui/bar/hp_barright.png"
                                xysize(70,20)
                            bar:
                                value you.mp
                                range 100
                                bar_vertical False
                                left_bar "gui/bar/mp_barleft.png"
                                right_bar "gui/bar/mp_barright.png"
                                xysize(70,20)




screen choicescreen:

    frame:
        xysize(100,300)
        align(0.4,0.4)
        background Frame("gui/background/choiceframe.jpg")
        
        vbox:
            button:
                text "攻击"
                action[SetVariable("choice_button",True),SetVariable("frightfor",hit_say),Hide("choicescreen"),Call("attick")]
            
            button:
                text "跳过"
                action[Call("youattick")]

label start:

    call screen screenfight(ours=ourfriends,yours=enemys)

    return


label attick:
    python:
        fighttext = str(my)+"打在了"+str(your)+"的身上"
        your.hp -= my.attick
        fighttext = str(your)+"被狠狠打了一拳"
        
    jump youattick

label youattick:
    python:
        attickfor = attacked
        fighttext = "使用了警棍挥击"
        my.hp -= your.attick
        fighttext = "第"+str(roundvalue)+"回合"
        roundvalue = roundvalue +1

    call screen screenfight(ours=ourfriends,yours=enemys)
回复 支持 抱歉

使用道具 举报

 楼主| 发表于 2022-9-16 09:04:13 | 显示全部楼层
alicia 发表于 2022-9-16 08:50
[mw_shl_code=renpy,true]
########################################################################### ...

有部分单词拼写错误)和部分变量语义模糊,还请见谅
回复 支持 抱歉

使用道具 举报

 楼主| 发表于 2022-9-16 19:52:05 | 显示全部楼层
回复

使用道具 举报

发表于 2022-9-19 08:42:14 | 显示全部楼层
楼主对“最小化工程”的理解跟我不一样……
我需要的是一个可以直接运行不会报“**** resource not found”之类问题的整个工程。光有一个脚本能干屁啊……
另外,光看脚本也不知道楼主到底想整什么……
回复 支持 抱歉

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-18 23:15 , Processed in 0.069984 second(s), 12 queries , File On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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