找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 13436|回复: 12

[原创] 发一个自己写的显示日期的屏幕

[复制链接]
发表于 2019-9-26 03:27:21 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 blackpineapple 于 2022-4-7 05:05 编辑

效果大概是这样: Screen Shot 2019-09-25 at 12.29.42 PM.png

[RenPy] 纯文本查看 复制代码
screen show_date(gametime = gt):
    fixed:
        xpos 50
        ypos 50
        hbox:
            spacing -40
            for number in gametime.year:
                image "gui/number_" + number + ".png"
            image "gui/year.png"

            for number in gametime.month:
                image "gui/number_" + number + ".png"
            image "gui/month.png"

            for number in gametime.day:
                image "gui/number_" + number + ".png"
            image "gui/day.png"

init python:

    import datetime

    class GameTime(object):

        def __init__(self, date="01 01 2018"):
            self._date = datetime.datetime.strptime(date, "%d %m %Y" )

        def addOneDay(self):
            self._date += datetime.timedelta(days = 1)

        @property
        def year(self):
            return [x for x in str(self._date.year)]

        @property
        def month(self):
            return [x for x in str(self._date.month)]

        @property
        def day(self):
            return [x for x in str(self._date.day)]



define gt = GameTime("01 01 2008")



评分

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

查看全部评分

 楼主| 发表于 2021-12-20 07:55:31 | 显示全部楼层
2021 最新版本
[RenPy] 纯文本查看 复制代码
init python:
    import datetime
    import time
    class GameDate(object):
        def __init__(self, date):
            self.date = date

        def add_minutes(self, n):
            self.date += datetime.timedelta(minutes = n)

        def add_hours(self, n):
            self.date += datetime.timedelta(hours = n)

        def add_days(self, n):
            self.date += datetime.timedelta(days = n)

    start_day = GameDate(datetime.datetime.strptime(
        "12 19 2021 00:00:00", "%m %d %Y %H:%M:%S"))
    today = GameDate(start_day.date)

label start:
    show screen show_time
    pause
    return


screen show_time():
    zorder 100
    fixed:
        vbox:
            vbox:
                text today.date.strftime("%A")
                text today.date.strftime("%-d/%b")
                text today.date.strftime("%H:%M")
            hbox:
                textbutton "add 30 minutes":
                    action Function(today.add_minutes, n=30)

                textbutton "add 1 hours":
                    action Function(today.add_hours, n=1)

回复 支持 1 抱歉 0

使用道具 举报

发表于 2019-10-4 23:11:03 | 显示全部楼层
年月日的文本数字是由图片拼接成,需要透明素材图片。
注意根据图片的大小,调整 spacing 数值—— 负40?估计png图片有很多透明空白...

随手做的素材图,有点大,注释掉
[RenPy] 纯文本查看 复制代码
#spacing -40


将里面图片放到gui文件夹里,或自行修改脚本,调整图片文件位置。
gui.zip (6.98 KB, 下载次数: 28)

回复 支持 抱歉

使用道具 举报

 楼主| 发表于 2019-10-6 02:27:40 | 显示全部楼层
现在感觉其实好像还不如直接用text就好了,图片的话会让游戏的大小变大。
之后再来更新这个。
回复 支持 抱歉

使用道具 举报

发表于 2019-10-6 15:22:23 | 显示全部楼层
BuErShen 发表于 2019-10-4 23:11
年月日的文本数字是由图片拼接成,需要透明素材图片。
注意根据图片的大小,调整 spacing 数值—— 负40? ...

文本数字用 image定义,这样图片可用 size调整大小了。
回复 支持 抱歉

使用道具 举报

发表于 2019-11-7 13:10:03 | 显示全部楼层
复制进去了,为什么没效果? 代码应该打在gui还是script 里?
回复 支持 抱歉

使用道具 举报

 楼主| 发表于 2019-11-19 06:27:14 | 显示全部楼层
qq524298690 发表于 2019-11-7 13:10
复制进去了,为什么没效果? 代码应该打在gui还是script 里?

都可以,主要需要对应的图像的png,等我有空写个文字的。
回复 支持 抱歉

使用道具 举报

发表于 2019-11-19 19:57:31 | 显示全部楼层
blackpineapple 发表于 2019-11-19 06:27
都可以,主要需要对应的图像的png,等我有空写个文字的。

已经成功运用了 ,谢谢!
回复 支持 抱歉

使用道具 举报

发表于 2021-12-20 21:26:09 | 显示全部楼层
非常棒,谢谢大佬。33行是不是多了一个 -号
我点了一下支持居然顶上去了,刚发现还有这功能,还无法取消.....
回复 支持 抱歉

使用道具 举报

 楼主| 发表于 2021-12-21 07:30:15 | 显示全部楼层
怀念丶落樱 发表于 2021-12-20 21:26
非常棒,谢谢大佬。33行是不是多了一个 -号
我点了一下支持居然顶上去了,刚发现还有这功能,还无法取消... ...

不是,看这个文档 https://www.programiz.com/python-programming/datetime/strftime
Format Code List 这里
回复 支持 抱歉

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-21 19:32 , Processed in 0.128953 second(s), 29 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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