找回密码
 立即注册

QQ登录

只需一步,快速开始

楼主: zsc2015

[已解决] 请问怎么给Text组件添加一个背景

[复制链接]
发表于 2019-11-1 17:19:51 | 显示全部楼层
你要的是这种效果吧
[RenPy] 纯文本查看 复制代码
init python:

    musicLrc = """[00:03.50]传奇
    [00:19.10]作词:刘兵 作曲:李健
    [00:20.60]演唱:王菲
    [00:26.60]
    [04:40.75][02:39.90][00:36.25]只是因为在人群中多看了你一眼
    [04:49.00]
    [02:47.44][00:43.69]再也没能忘掉你容颜
    [02:54.83][00:51.24]梦想着偶然能有一天再相见
    [03:02.32][00:58.75]从此我开始孤单思念
    [03:08.15][01:04.30]
    [03:09.35][01:05.50]想你时你在天边
    [03:16.90][01:13.13]想你时你在眼前
    [03:24.42][01:20.92]想你时你在脑海
    [03:31.85][01:28.44]想你时你在心田
    [03:38.67][01:35.05]
    [04:09.96][03:39.87][01:36.25]宁愿相信我们前世有约
    [04:16.37][03:46.38][01:42.47]今生的爱情故事 不会再改变
    [04:24.82][03:54.83][01:51.18]宁愿用这一生等你发现
    [04:31.38][04:01.40][01:57.43]我一直在你身旁 从未走远
    [04:39.55][04:09.00][02:07.85]"""

    import os
    import time

    gc_list = [] #歌词列表
    dictLrc = {}   #创建字典类型,全局变量
    #打印歌词,按照时间顺序,
    def lrcTime(lrc):
        dictLrc = lrc       #将形参赋值给实参
        listLrc = sorted(dictLrc)  #将字典的key值(时间)按大小排序
        timeLen = len(listLrc)#读取出列表数量,即打印时循环多少次
        timeFree = 0 #定义暂停时间
        count = 0
        for i in listLrc:  #循环列表中的值,也就是字典中的key,
            timeFree = i -count  #得出暂停时间
            # time.sleep(timeFree) #暂停
            renpy.pause(timeFree) #renpy暂停
            gc_list.append(dictLrc[i]) #添加歌词
            #print(dictLrc[i]) #打印出歌词
            count = i   #将上一个时间赋值给count,下一次循环继续使用

    #将时间转换为秒
    def revertTime(time):#传入的为字符串格式的
        time1 = time
        timeList = time1.split(":")#以:将时间拆分为分 和 秒
        return  round(float(timeList[0]) * 60 + float(timeList[1]),2) #返回时间为秒,保留两位小数

    # #从文件家中读取歌词
    # def getLrc():
    #     rf = open("lrc.txt","r",errors = "ignore")
    #     getlrc = rf.read()
    #     rf.close()
    #     return getlrc  #返回为字符串

    #拆分,应该转换成字典类型,以时间为key,歌词为value
    def splitStr(getstr):#接收的为字符串
        global  dictLrc   #创建字典类型
        getStr = getstr
        count = 0  #获取该单词需要输出几次
        for i in getStr:   #以][  ]  [  进行拆分
            if i =="[":
                count +=1
        #注意替换顺序不能变,先替换"][",在替换单个的,否则可能出现两个**
        getStr = getStr.replace("][","*")
        getStr = getStr.replace("[","*")
        getStr = getStr.replace("]","*")
        lineLrc = getStr.split("*")
        for i in range(1,count+1):          #循环多次,得到多个key值
            #将时间转换成秒的格式
            LrcTimes = revertTime(lineLrc[i]) #调用转换时间的函数,此时key为秒
            dictLrc[LrcTimes] = lineLrc[-1]    #将列表最后一个歌词复制给字典key

    #打印歌词函数
    def printLrc(lrc):
        lrc1 = lrc
        for i in lrc1:   # i 为字符串歌词
            splitStr(i)  #调用拆分函数


    def a():
        # lrc = getLrc()#字符串类型
        listLrc = musicLrc.split("\n")#以换行符将字符串拆分成列表
        printLrc(listLrc)
        lrcTime(dictLrc)


    c_ui_darkblue = "#000022AA"
    c_ui_brown = "#D2B48C66"


# 7.消息界面
screen message():
    frame:
        background c_ui_brown
        xysize(300,300)
        align(0.5,0.5)
        if len(gc_list) > 4:
            $ aa = len(gc_list)
            $ results = aa - 4
            $ del gc_list[:results]
        vbox:
            for y in gc_list:
            #$ a = gc_list[-1] #列表最后一个元素,也就是当前歌词
                text "[y]"

label start:
    "111111"
    play music "music/wf_cq.wav" #播放王菲的传奇
    show screen message #调用消息界面
    $ a()
    "aaaa"
    "bbb"
    "ccc"
    "ddddd"
    "aaaaaaaaaaaaa"

这是原贴https://blog.csdn.net/lmxt520/article/details/79675972
不知道怎么实现让 gc_list.append(dictLrc) #添加歌词 延缓几秒执行,只能暂停整个程序

评分

参与人数 2干货 +2 收起 理由
BuErShen + 1 版区有你更精彩(*^_^*)
龙氏 + 1 感谢分享!

查看全部评分

回复 支持 抱歉

使用道具 举报

发表于 2019-11-2 10:07:28 | 显示全部楼层
老司机飞飞飞 发表于 2019-11-1 17:19
你要的是这种效果吧
[mw_shl_code=renpy,true]init python:

提醒萌新,只是做视觉小说游戏,renpy引擎该有的功能都具备,无需学习Python,虽然renpy脚本和Python代码几乎是无缝结合使用。

如果有创新创意的功能,想用renpy来实现,倒是有必要。

心跳文学部! (Doki Doki Literature Club) 就是renpy引擎在做视觉小说游戏上面功能强大体现,是一部具备里程碑意义作品。
回复 支持 抱歉

使用道具 举报

发表于 2019-11-2 13:16:06 | 显示全部楼层
BuErShen 发表于 2019-11-2 10:07
提醒萌新,只是做视觉小说游戏,renpy引擎该有的功能都具备,无需学习Python,虽然renpy脚本和Python代码 ...

兄弟,路走窄了
多学点东西总是没错的
回复 支持 抱歉

使用道具 举报

 楼主| 发表于 2019-11-3 18:13:40 | 显示全部楼层
老司机飞飞飞 发表于 2019-11-2 13:16
兄弟,路走窄了
多学点东西总是没错的

唔我去研究研究
我现在用的临时解决方案虽然也能行
就是视觉效果差了点
而且代码太臃肿了
多学点技巧总是好的
回复 支持 抱歉

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-23 20:43 , Processed in 0.048412 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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