找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 24732|回复: 10

[已解决] bar定制化的一些问题

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

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

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

×
看了一下论坛上有关bar定制化的一些问题,也有人和我提过类似的问题,首先感谢回复我帖子的每一个人,但是我希望听到实质性的意见,每个人不都是从小白过来的吗?你不乐意回复可以不回复,没必要找存在感,觉得这个问题复杂,我可以打赏解答,这是人之常情。
今天我有一个问题和https://www.renpy.cn/forum.php?m ... amp;_dsign=5db87fcb这个帖子的楼主同问
我看了一下评论https://doc.renpy.cn/zh-CN/gui.html#bar这是官方的一个定制bar条子的方法
在这里我提出几个问题
1:这个文档只给出教你如何定制bar条子整体,也就是我如果按照教程来并不能达到血条上面是红色下面是蓝色的效果(在这之前我试验过)
2:这个教程给出的只是单一替换,也就是说你替换一个所有【left】的颜色都会是你替换的那个颜色
教程正真有用的就一句话:最常见的老式条(bar)会向用户展示一个进度数字。条(bar)不会用在GUI中,但会用在创作者定义的(creator-defined)界面中。
通过编辑以下图片可以实现条(bar)的定制化:
gui/bar/left.png, gui/bar/bottom.png用于水平和垂直条(bar)的填充图片gui/bar/right.png, gui/bar/top.png用于水平和垂直条(bar)的填充图片不知道是我理解能力不行还是如何,除此之外我找不到任何有用的,也不知道最后这位大佬解决了没有,讲了这么多不知道看这个帖子的大佬理解我意思没有放一张图给各位看下:

示例

示例
这是我们工程文件中GUI/BAR的位置截图,了解bar的人都知道left.png是显示血条实时状态的可以变动right.png则是显示bar血条的背景或是底色的了解这个之后假如说我要在一个这个框中如之前帖子的图片所示: 002415jb9lbv9l59b5xfrl.png 假如我HP这里显示蓝色
蓄力这里红色(也就是说我要在复制一个红色的left命名为left1,但是我该如何定义left1让它显示?
那么我应该怎么办?
[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 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 = 100
default hero_hp_max1 = 100
default hero_lv1 = 10
default hero_ex1 = 0
default hero_ex_max1 = 100
  
## 小兵 数值。
default Devil_hp1 = 100
default Devil_hp_max1 = 100
default Devil_lv1 = 90
default Devil_ex1 = 0
default Devil_ex_max1 = 100 


根据我的了解bar的图片是定义在screens当中的,之前尝试过换行新建一个bar1来做到同时显示多个不同颜色的条子,但是bar似乎本身就是renpy的特殊语法,所以我没有办法更改,不知道各位理解我的意思没有,如果你理解了,并且可以解决但是又想得到点什么,没关系发出你的收款码(只要你能解决)
发表于 2021-7-22 12:25:15 | 显示全部楼层
您要定制bar?能指定不同图片?那要学 样式(style)https://doc.renpy.cn/zh-CN/style.html

修改先前大佬解答的脚本:
[RenPy] 纯文本查看 复制代码
# 游戏的脚本可置于此文件中。

#####################
## HP血条样式 style ##
style bar_HP:
# 调整长度
    xsize 200
# 调整宽度
    ysize 30
# HP图片
    left_bar Frame("images/UI/left_HP.png")## 注意不同图片路径
# 底图图片
    right_bar Frame("images/UI/right.png")## 图片路径。
#############################################
## MP血条样式
style bar_MP:
# 调整长度
    xsize 200
# 调整宽度
    ysize 30
# MP图片
    left_bar Frame("images/UI/left_MP.png")
# 底图图片
    right_bar Frame("images/UI/right.png")
################################################

## 该screen显示信息,注意括号里的5个参数。
screen single_stat(name, hp, hp_max, lv, xalign, bar_X): ## 又增加个参数:bar_X
 
    frame:
        xalign xalign # 位置,注意是相同的,不是常见X和Y。
 
        vbox:
            spacing 5
 
            hbox:
                text "[name!t]" min_width 220 #style "RPG_bar_HP"
                text _(" Lv. [lv]")
 
            hbox:
                text _("HP"):
                    min_width 40
                    yalign 0.5


                bar:
                    value AnimatedValue(hp, hp_max, 1.0)
                    xmaximum 180
                    ysize 26
                    style bar_X ## 用在样式这里:bar_X

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

# 此screen用use 入参方式,一次显示两个信息不同的single_stat。
screen stats():
 
    use single_stat(_("英雄"), hero_hp, hero_hp_max, hero_lv, 0.0, "bar_HP") ## 增加:"bar_HP"

    use single_stat(_("魔王"), Devil_hp, Devil_hp_max, Devil_lv, 1.0, "bar_MP")## 这里改为:"bar_MP"
 
## 英雄 数值。
default hero_hp = 50
default hero_hp_max = 100
default hero_lv = 10
 
## 魔王 数值。
default Devil_hp = 100
default Devil_hp_max = 100
default Devil_lv = 90
 
# 游戏在此开始。
label start:
 
    show screen stats
    with dissolve
 
    "英雄需要治疗。"
    $ hero_hp = 100
    "治疗完成。"
 
 
    "魔王等级太高了?"
    $ Devil_lv = 10
 
    "现在都是10级了。"
 
    hide screen stats
    "关闭数值显示界面"
 
    # 此处为游戏结尾。
    return

回复 支持 1 抱歉 0

使用道具 举报

发表于 2021-7-22 12:43:16 | 显示全部楼层
BuErShen 发表于 2021-7-22 12:25
您要定制bar?能指定不同图片?那要学 样式(style):https://doc.renpy.cn/zh-CN/style.html

修改先前大佬解 ...

建立论坛时,本人也是萌新,现在吗,算半吊子,做正常的视觉小说游戏,还是没大的问题碟......
所以你要努力!加油!


看以前的解答,好像用大葱敲晕自己,那时论坛...唔....
没办法,只能硬着头皮上
所以,看在解答份上,别管解答的好不好了......求别再挂本人解答贴了,要脸

回复 支持 抱歉

使用道具 举报

发表于 2021-7-22 14:38:54 | 显示全部楼层
BuErShen 发表于 2021-7-22 12:43
建立论坛时,本人也是萌新,现在吗,算半吊子,做正常的视觉小说游戏,还是没大的问题碟......
所以你要 ...

你倒是把用到的图片传上来啊……
不然你这代码一运行就报错,有个JB用
回复 支持 抱歉

使用道具 举报

 楼主| 发表于 2021-7-22 15:31:07 | 显示全部楼层
BuErShen 发表于 2021-7-22 12:43
建立论坛时,本人也是萌新,现在吗,算半吊子,做正常的视觉小说游戏,还是没大的问题碟......
所以你要 ...

其实挺佩服你的做网站选了个最难用的社区动力模板
不过呢很有一说一网站能运营到今天确实不容易,还有啊,就是我加你们的qq群不知道怎么回事一直加不进去,
如果有时间的话麻烦请看下我的qq是:785081893
另外呢关于你的解答贴的问题既然说了我就不会在挂了(虽然不知道出于什么原因)
还有啊,感谢你这种大佬来回复我这个萌新的帖子写了哈
回复 支持 抱歉

使用道具 举报

 楼主| 发表于 2021-7-22 15:32:17 | 显示全部楼层
被诅咒的章鱼 发表于 2021-7-22 14:38
你倒是把用到的图片传上来啊……
不然你这代码一运行就报错,有个JB用 ...

今天上传不了图片了。。。。理解一下萌新的苦,一天只能上传三张图片我还要去压缩,但是还是感谢你的回复
回复 支持 抱歉

使用道具 举报

 楼主| 发表于 2021-7-22 16:28:44 | 显示全部楼层
BuErShen 发表于 2021-7-22 12:25
您要定制bar?能指定不同图片?那要学 样式(style):https://doc.renpy.cn/zh-CN/style.html

修改先前大佬解 ...

[RenPy] 纯文本查看 复制代码
screen stats2():
  
    use single_stat(_("小兵"), hero_hp1, hero_hp_max1, hero_lv1, hero_ex1, hero_ex_max1, 0.0, "bar_HP")
    use single_stat(_("魔王"), Devil_hp1, Devil_hp_max1, Devil_lv1,Devil_ex1, Devil_ex_max1, 1.0, "bar_MP")


这段代码报了个错    use single_stat(_("魔王"), hero_hp1, hero_hp_max1, hero_lv1, hero_ex1, hero_ex_max1, 0.0, "bar_HP")
Exception: Too many arguments in call (expected 7, got 8).

提示我调用参数过多,这种如何解决呢
回复 支持 抱歉

使用道具 举报

 楼主| 发表于 2021-7-22 16:37:08 | 显示全部楼层
qwe3147969113 发表于 2021-7-22 16:28
[RenPy] 纯文本查看 复制代码
screen stats2():
  
    use single_stat(_("小兵"), hero_hp1, hero_hp_max1, ...[/quote]

[mw_shl_code=renpy,true]
style bar_HP:
# 调整长度
    xsize 200
# 调整宽度
    ysize 30
# HP图片
    left_bar Frame("images/UI/left_HP.png")## 注意不同图片路径
# 底图图片
    right_bar Frame("images/UI/right.png")## 图片路径。
#############################################
## MP血条样式
style bar_MP:
# 调整长度
    xsize 200
# 调整宽度
    ysize 30
# MP图片
    left_bar Frame("images/UI/left_HP.png")
# 底图图片
    right_bar Frame("images/UI/right.png")
################################################
 
## 该screen显示信息,注意括号里的5个参数。
screen single_stat(name, hp, hp_max, lv, ex, ex_max,xalign,bar_X):
  
    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
                    style bar_X ## 用在样式这里:bar_X
  
                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, "bar_HP")
    use single_stat(_("魔王"), Devil_hp, Devil_hp_max, Devil_lv,Devil_ex, Devil_ex_max, 1.0, "bar_MP")
  
## 英雄 数值。
default hero_hp = 50
default hero_hp_max = 100
default hero_lv = 10
default hero_ex = 10
default hero_ex_max = 100
  
## 魔王 数值。
default Devil_hp = 10
default Devil_hp_max = 100
default Devil_lv = 90
default Devil_ex = 90
default Devil_ex_max = 100
  
# 游戏在此开始。
label start:
  
    show screen stats
    with dissolve
  
    "英雄需要治疗。"
    $ hero_hp = 100
    "治疗完成。"
  
  
    "魔王等级太高了?"
    $ Devil_ex = 10
    $ Devil_lv = 10
  
    "现在都是10级了。"
  
    hide screen stats
    "关闭数值显示界面"
  
    # 此处为游戏结尾。
    return


因为新建过一个工程,这个我修改过之后的又是ok的,但是这个放在在我原工程文件就不行
回复 支持 抱歉

使用道具 举报

 楼主| 发表于 2021-7-22 17:05:28 | 显示全部楼层
qwe3147969113 发表于 2021-7-22 16:37
[mw_shl_code=renpy,true]
style bar_HP:
# 调整长度

等等,我傻逼了好吧。。。。。。
这是一个简单的冲突问题,上面当我放屁就好,
回复 支持 抱歉

使用道具 举报

发表于 2021-7-23 16:39:10 | 显示全部楼层
qwe3147969113 发表于 2021-7-22 15:32
今天上传不了图片了。。。。理解一下萌新的苦,一天只能上传三张图片我还要去压缩,但是还是感谢你的回复 ...

只是蛋疼喷BuErShen而已,并不是说你……
回复 支持 抱歉

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-19 07:35 , Processed in 0.074945 second(s), 16 queries , File On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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