找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 13171|回复: 9

[转载] 【转】初学者向日历系统(python)

[复制链接]
发表于 2018-5-5 20:56:27 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 阿咸 于 2018-5-6 15:02 编辑

原作者:fluxus  原文链接:https://lemmasoft.renai.us/forums/viewtopic.php?f=51&t=27920&sid=01d0112886322e67157795b36e6f68ce
项目里需要一个日历系统,然后我就做了一个。
我找了以前的教程看看有没有灵感,在 Screen 语句教程中找到启发,那里面已经有一个日历教程了,我这边也做了一个。
这边已经有很多日历教程了,不过我还是po上来,这个日历很小很简单,直接复制粘贴就可以。
然后里面还放了无数注释 ^.^

如果要显示的不仅仅是今天的日期,还再需要做一些修改

                               
登录/注册后可看大图


[RenPy] 纯文本查看 复制代码
######################################################
# 初始化python
#
init python:
    
    # 引入datetime库中的date模块。
    # datetime库里有很多其他东西,不过这里我们用不到所以只引用date模块就行了。
    # date模块包含计算日期,在日期和字符间转换等功能。
    from datetime import date  
    
    # 引入locale模块。locale模块可以获取本地的设置。比如这个电脑所在
    # 的国家和它的语言设置。 
    # 当然还有我们需要的本地日期格式。 
    import locale
    
    # 获取今天的日期并赋值给today。
    today = date.today()
    
    # 将所有的locale设置成用户默认的设置。
    locale.setlocale(locale.LC_ALL, '')
    
    # 设定本地日期格式并赋值给date_inf (这里使用一个包含键值对的字典类型)
    # 我们想在日历上显示的字符串。 
    # 像日、年的值,和月份、星期的名称。(译注:英语环境下月份和星期都用字母表示)
    # 更多选项,请参见 strftime.org,或者搜索"python strftime"如果这个网站消失的话。
    date_inf = {    "day": today.strftime("%A"),
                    "daynr": today.strftime("%d"),
                    "month": today.strftime("%B"),
                    "year": today.strftime("%Y")
                }
    
    
#######################################################
#  从python初始化
#
init:
    # 定义一个角色用来讲话,不过在这个例子里没什么用就是了。
    define hh = Character('Helpful Helper:')

    # 加载背景图。 
    # 其实也没啥必要。现在都自动了。
    # image bg_grid = "grid.png"
    

#######################################################
# 定义日历的长相,使用的是 Ren'py的 screen 语句。 
# 这个部分通常放在screens.rpy里,不过如果你是我, 
# 可能马上就想贴到自己脚本里然后测试结果。
screen calendar(date_inf):
    
    # 不能阻止用户和其他东西交互,这个screen只用来显示信息。 
    modal False
    
    # screen的其他部分。 
    frame:
        xalign 1.0    # 放在右上角 
        yalign 0.0    #
        xsize 100     # 大小是100*100像素
        ysize 100     # 
        xmargin .05   # 和其他元素间留点儿距离 
        ymargin .05   #
        xpadding .15  # 和内部内容留点儿距离 
        ypadding .15  # 

        vbox:  # 放一个竖向排版的盒子。
            text date_inf["daynr"] size 60 xalign 0.5    # 在盒子正中大字显示日期。
            hbox:  #放一个横向排版的盒子。
                text date_inf["month"] size 12 xalign 0.5  # 在盒子中间小字显示月和年。
                text date_inf["year"] size 12 xalign 0.5   # 
                spacing 10 # 给两个条目之间留点距离。


#######################################################
#  现在开始我的表演
label start:
    
    ### 显示背景 
    # show bg_grid
    
    # 显示我们前面定义的screen。
    show screen calendar(date_inf)
    
    # 让我们的小助手说一句非常有帮助的话
    hh "Click to continue"
    
    return

评分

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

查看全部评分

发表于 2018-5-6 12:44:49 | 显示全部楼层
龙氏 发表于 2018-5-6 12:16
嗯,不符合中文阅读顺序:年月日。
“年”字昵?发个中文版脚本吧。

我调好了
89898989898989.PNG

脚本代码:
[RenPy] 纯文本查看 复制代码
######################################################
# 初始化python
#
init python:
     
    # 引入datetime库中的date模块。
    # datetime库里有很多其他东西,不过这里我们用不到所以只引用date模块就行了。
    # date模块包含计算日期,在日期和字符间转换等功能。
    from datetime import date  
     
    # 引入locale模块。locale模块可以获取本地的设置。比如这个电脑所在
    # 的国家和它的语言设置。 
    # 当然还有我们需要的本地日期格式。 
    import locale
     
    # 获取今天的日期并赋值给today。
    today = date.today()
     
    # 获取本地信息——地点和语言。
    locale.setlocale(locale.LC_ALL, '')
     
    # 设定本地日期格式并赋值给date_inf (这里使用一个包含键值对的字典类型)
    # 我们想在日历上显示的字符串。 
    # 像日、年的值,和月份、星期的名称。(译注:英语环境下月份和星期都用字母表示)
    # 更多选项,请参见 strftime.org,或者搜索"python strftime"如果这个网站消失的话。
    date_inf = {    "day": today.strftime("%A"),
                    "daynr": today.strftime("%d"),
                    "month": str(today.month)+'月', #"month": today.strftime("%B"),
                    "year": str(today.year)+'年', #"year": today.strftime("%Y")
                }
     
     
#######################################################
#  从python初始化
#
init:
    # 定义一个角色用来讲话,不过在这个例子里没什么用就是了。
    define hh = Character('Helpful Helper:')
 
    # 加载背景图。 
    # 其实也没啥必要。现在都自动了。
    # image bg_grid = "grid.png"
     
 
#######################################################
# 定义日历的长相,使用的是 Ren'py的 screen 语句。 
# 这个部分通常放在screens.rpy里,不过如果你是我, 
# 可能马上就想贴到自己脚本里然后测试结果。
screen calendar(date_inf):
     
    # 不能阻止用户和其他东西交互,这个screen只用来显示信息。 
    modal False
     
    # screen的其他部分。 
    frame:
        ## 整体位置。
        xalign 0.99    # 放在右上角 
        yalign 0.0    #

        ## 背景图大小。
        xsize 93     # 大小是100*100像素
        ysize 93     # 


        xmargin 0.05   # 和其他元素间留点儿距离 
        ymargin 0.05   #

        ## 背景图位置。
        xpadding 0.05  # 和内部内容留点儿距离 
        ypadding 0.05  # 
 
        vbox:  # 放一个竖向排版的盒子。
            text date_inf["daynr"] size 60 xalign 0.3     # 在盒子正中大字显示日期。
            hbox:  #放一个横向排版的盒子。
                text date_inf["year"] size 15 xalign 0.35    # 
                text date_inf["month"] size 15 xalign 0.5    # 在盒子中间小字显示月和年。
                spacing 5 # 给两个条目之间留点距离。

## 游戏在此开始。
#  现在开始我的表演
label start:
     
    ### 显示背景 
    # show bg_grid
     
    # 显示我们前面定义的screen。
    show screen calendar(date_inf)
     
    # 让我们的小助手说一句非常有帮助的话
    hh "Click to continue(点击继续)"
     
    return

评分

参与人数 1干货 +1 收起 理由
BuErShen + 1 版区有你更精彩(*^_^*)

查看全部评分

回复 支持 1 抱歉 0

使用道具 举报

发表于 2018-5-6 10:39:07 | 显示全部楼层
这问号,咋回事?
特意用中文字体测试下:
777777777777777.PNG
回复 支持 抱歉

使用道具 举报

 楼主| 发表于 2018-5-6 11:28:16 | 显示全部楼层
把"month": today.strftime("%B"), 改成这个试试呢?
[RenPy] 纯文本查看 复制代码
"month": str(today.month)+'月',
回复 支持 抱歉

使用道具 举报

发表于 2018-5-6 12:16:21 | 显示全部楼层
嗯,不符合中文阅读顺序:年月日。
“年”字昵?发个中文版脚本吧。
666666666666666666.PNG
回复 支持 抱歉

使用道具 举报

 楼主| 发表于 2018-5-6 13:13:38 | 显示全部楼层

嗯嗯,鼓掌鼓掌,还可以把字符换成图片
回复 支持 抱歉

使用道具 举报

发表于 2019-6-28 17:17:41 | 显示全部楼层
大佬,请问怎么在安卓机上显示对话头像啊?电脑上支持,但一到安卓机上就没有了
回复 支持 抱歉

使用道具 举报

发表于 2019-7-2 09:13:16 | 显示全部楼层
dalao太优秀了,向大佬学习
回复 支持 抱歉

使用道具 举报

发表于 2020-6-5 17:00:55 | 显示全部楼层
请问如果需要做一个游戏假时间系统,通过每次执行完一个label增加不同的时间,该如何改进?
回复 支持 抱歉

使用道具 举报

发表于 2020-6-6 15:39:31 | 显示全部楼层
emm,感谢大佬的初始源码,我用你的代码和另外一个帖子的代码,然后自己稍加改动组成了游戏的时间系统
回复 支持 抱歉

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-7 10:50 , Processed in 0.140355 second(s), 32 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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