RenPy中文空间

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 187|回复: 3

[有回复] 搞了个战斗信息列表,怎么让它始终显示的是最后一行

[复制链接]
发表于 2019-5-1 21:29:29 | 显示全部楼层 |阅读模式

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

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

x
如题,有没有大佬可以解答下
[RenPy] 纯文本查看 复制代码
#战斗文本
screen zdwb():
    viewport:
        xsize 300
        ysize 100
        align(0.5,0)
        draggable True
        mousewheel True
        arrowkeys True
        edgescroll(150,500)
        scrollbars "vertical"

        vbox:
            for y in range(1, 100):
                text "[y]"
                #if len(list_zdwb) > 50:
                #    $ del list_zdwb[0]

label start:
    show screen zdwb
    "aaaaaa"
    "bbbbbbbbb"
    return

发表于 2019-5-2 07:41:57 | 显示全部楼层
曾经也想做个战斗信息的screen,不过思路是采用 通知(notify)而不是 条(bar)?
大概是这样,一个VBox容器里,有5个通知(notify),根据已经显示数量调整位置,通知(notify)自动消失后,减少已经显示的数量......
至于文本,按序装入,比如已经显示3个,那么新文本装入第4个通知(notify)里......
一直没去做,你可以尝试一下,看能不能做出。

回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-5-2 15:24:56 | 显示全部楼层
本帖最后由 老司机飞飞飞 于 2019-5-4 21:19 编辑

还是不知道怎么让焦点始终在最下面,只能限制行数来实现,列表只能定义在python中才能实现替换删除之类的,用define搞不好,原来的有点问题又改了下
[RenPy] 纯文本查看 复制代码
init python:
    list_zdwb=[]
    def dianji():
        suiji= renpy.random.randint(1,10)
        if suiji >=1 and suiji <=5:
            aa = "a"
            list_zdwb.append(aa)
        elif suiji >=6 and suiji <=8:
            bb = "bbbb"
            list_zdwb.append(bb)
        else:
            cc = "cccccccc"
            list_zdwb.append(cc)
        if len(list_zdwb) > 10:
            a = len(list_zdwb)#获取列表长度
            result = a - 10
            del list_zdwb[:result]
#战斗文本
screen zdwb():
    viewport:
        xsize 300
        ysize 350
        align(0.5,0)
        draggable True
        mousewheel True
        arrowkeys True
        edgescroll(150,500)
        scrollbars "vertical"

        vbox:
            for y in list_zdwb:
                text "[y]"


screen aa():
    frame:
        align(0.5,0.5)
        textbutton "点击" action Jump("tj")

label start:
    show screen zdwb
    call screen aa
    "aaaaaa"
    "bbbbbbbbb"
    return

label tj():
    $ dianji()
    jump start
回复 支持 反对

使用道具 举报

发表于 2019-5-4 10:33:59 | 显示全部楼层
不太明白,稍微修改下:

[RenPy] 纯文本查看 复制代码
init python:
    list_zdwb=[]
    def dianji():
        suiji= renpy.random.randint(1,10)
        if suiji >=1 and suiji <=5:
            aa = "a"
            list_zdwb.append(aa)
        elif suiji >=6 and suiji <=8:
            aa = "b"
            list_zdwb.append(aa)
        else:
            aa = "c"
            list_zdwb.append(aa)
#战斗文本
screen zdwb():
    viewport:
        xsize 300
        ysize 350
        align(0.5,0)
        draggable True
        mousewheel True
        arrowkeys True
        edgescroll(150,500)
        scrollbars "vertical"

        vbox:
            for y in list_zdwb:
                text "[y]"
                if len(list_zdwb) >= 10:
                    $ a = len(list_zdwb)#获取列表长度
                    $ result = a - 9
                    $ del list_zdwb[:result]

    frame:
        align(0.5,0.8)
        textbutton "点击" action Function(dianji)

label start:
    call screen zdwb
    return

回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2019-10-22 06:35 , Processed in 0.076740 second(s), 21 queries , File On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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