作者简介:一名在校计算机学生、每天分享Python的学习经验、和学习笔记。
座右铭:低头赶路,敬事如仪
个人主页:网络豆的主页
目录
前言
一.新年介绍
二.代码介绍
1.应用的技术
(1)Pygame 库(做窗口)
(2)时间函数 (datetime)
(3)math库的简介
三.效果展示
四、实现步骤
1.调用 pygame 库
2. 调用时间函数和数学函数
3.初始化pygame (设置窗口宽高大小与标题)
4.装载背景图片
5.设置字体
6.设置一个文本框
7.设置过年时间与事件退出
8.取得现在时间并且计算到新年时间
9.刷上时间背景窗口
五、编码实现(全部源代码)
前言
快新年了~和学姐花了一下午做出的新年倒计时,女朋友一看吃醋了。来看看和学姐如何研究的。
一.新年介绍
新年,即一年的第一天,为世界多数国家通行的节日。世界各国,特别是古代,新年都有不同的日期,现代世界多数国家定为公元制纪年的1月1日。现代中国将“元旦”称为“公历新年”,将“春节”称为“农历新年”。当日,人们会以各种不同的方式庆祝新年的到来。
二.代码介绍
1.应用的技术
(1)Pygame 库(做窗口)
Pygame 是一个专门用来开发游戏的 Python 模块,主要为开发、设计 2D 电子游戏而生,它是一个免费、开源的第三方软件包,支持多种操作系统,具有良好的跨平台性(比如 Windows、Linux、Mac 等)。Pygame 是 Pete Shinners 在 SDL(Simple DirectMedia Layer,一套开源的跨平台多媒体开发库)基础上开发而来,其目的是取代 PySDL。
(2)时间函数 (datetime)
在Python程序里,为了表示日期和时间,我们需要借助datetime模块。
(3)math库的简介
math库是Python提供的内置数学类函数库,因为复数类型常用于科学计算,一般计算并不常用,因此math库不支持复数类型,仅支持整数和浮点数运算。
math库一共提供了4个数学常数和44个的数。44个教学的数共分为4大类:16个数值表示的教、8个幂对数的数、16个二角对数的数和4个高等特殊函数。
三.效果展示
四、实现步骤
1.调用 pygame 库
这个库需要单独安装 安装很简单cmd命令行 pip install pygame
import pygame # 调用 pygame 库 这个库需要单独安装 安装很简单cmd命令行 pip install pygameimport sysfrom pygame.locals import *
2. 调用时间函数和数学函数
import datetime # 调用时间函数 下面 time 也是时间函数from datetime import datetimefrom datetime import datefrom datetime import timeimport timeimport math # 调用数学函数
3.初始化pygame (设置窗口宽高大小与标题)
pygame.init() # 初始化 pygamesize = width, height = 550, 400 # 设置pygame窗口的 宽和高screen = pygame.display.set_mode(size) # screen 设置窗口大小是 sizepygame.display.set_caption("我是咸鱼") # 设置窗口顶部的标题
4.装载背景图片
background = pygame.image.load("image/bground1.png").convert()# 装载背景图片
在image文件中图片名bground1.png。
5.设置字体
f1 = pygame.font.SysFont('方正粗黑宋简体', 30) # 设置两个字体 大小 30 和 50 样式 幼圆f = pygame.font.SysFont('方正粗黑宋简体', 50)
注意:如果呈现字体这样的情况。
通过这个命令查看 pygame 支持的字体格式,然后写入支持的字体
import pygameprint (pygame.font.get_fonts())
6.设置一个文本框
设置文本框并调节位置
text1 = f1.render("距离春节过年还有:", True, (0, 0, 0)) # 设置一个文本框textrect = text1.get_rect() # 取得文本框的位置矩形大小textrect.center = (150, 100) # 设置文本框中心位置为窗口坐标的 (150,100)的位置
7.设置过年时间与事件退出
spring = datetime(2023, 1, 22, 0, 0) # 给定过年正月的具体时间, datetime 可以将参数变为时间格式while True: for event in pygame.event.get(): # 取事件队列中的值如有 QUIT 就推出游戏 if event.type == QUIT: pygame.quit() sys.exit()
8.取得现在时间并且计算到新年时间
today = datetime.now() # 取得现在的时间 day = (spring - today).days # 用春节的时间减现在的时间 得到天数 second = (spring - today).seconds # 得到秒数 sec = second % 60 # 分别算出 具体秒数 分钟数 和 小时数 minute = second / 60 % 60 hour = second / 60 / 60 if hour > 24: # 如果小时大于24就减掉24 hour = hour - 24 hour = math.floor(hour) # 去掉hour 和 minute 的小数部分 minute = math.floor(minute)
9.刷上时间背景窗口
a = str(day) + "天" + str(hour) + '小时' + str(minute) + "分钟" + str(sec) + "秒" + "\n" screen.blit(background, (0, 0)) # 在pygame 窗口上刷上背景图 screen.blit(text1, textrect) # 刷上固定文字 text = f.render(str(a), True, (255, 0, 0)) # 刷上时间数 textrec = text.get_rect() textrec.center = (300, 200) screen.blit(text, textrec) pygame.display.flip() # 刷新窗口 time.sleep(1) # 停留一秒钟
五、编码实现(全部源代码)
import pygame # 调用 pygame 库 这个库需要单独安装 安装很简单cmd命令行 pip install pygameimport sysfrom pygame.locals import *import datetime # 调用时间函数 下面 time 也是时间函数from datetime import datetimefrom datetime import datefrom datetime import timeimport timeimport math # 调用数学函数pygame.init() # 初始化 pygamesize = width, height = 550, 400 # 设置pygame窗口的 宽和高screen = pygame.display.set_mode(size) # screen 设置窗口大小是 sizepygame.display.set_caption("我是咸鱼") # 设置窗口顶部的标题background = pygame.image.load("image/bground1.png").convert()# 装载背景图片f1 = pygame.font.SysFont('方正粗黑宋简体', 30) # 设置两个字体 大小 30 和 50 样式 幼圆f = pygame.font.SysFont('方正粗黑宋简体', 50)text1 = f1.render("距离春节过年还有:", True, (0, 0, 0)) # 设置一个文本框textrect = text1.get_rect() # 取得文本框的位置矩形大小textrect.center = (150, 100) # 设置文本框中心位置为窗口坐标的 (150,100)的位置spring = datetime(2023, 1, 22, 0, 0) # 给定过年正月的具体时间, datetime 可以将参数变为时间格式while True: for event in pygame.event.get(): # 取事件队列中的值如有 QUIT 就推出游戏 if event.type == QUIT: pygame.quit() sys.exit() today = datetime.now() # 取得现在的时间 day = (spring - today).days # 用春节的时间减现在的时间 得到天数 second = (spring - today).seconds # 得到秒数 sec = second % 60 # 分别算出 具体秒数 分钟数 和 小时数 minute = second / 60 % 60 hour = second / 60 / 60 if hour > 24: # 如果小时大于24就减掉24 hour = hour - 24 hour = math.floor(hour) # 去掉hour 和 minute 的小数部分 minute = math.floor(minute) a = str(day) + "天" + str(hour) + '小时' + str(minute) + "分钟" + str(sec) + "秒" + "\n" screen.blit(background, (0, 0)) # 在pygame 窗口上刷上背景图 screen.blit(text1, textrect) # 刷上固定文字 text = f.render(str(a), True, (255, 0, 0)) # 刷上时间数 textrec = text.get_rect() textrec.center = (300, 200) screen.blit(text, textrec) pygame.display.flip() # 刷新窗口 time.sleep(1) # 停留一秒钟
创作不易,求关注,点赞,收藏,谢谢~