python时钟罗盘酷炫代码_仿抖音网红文字时钟python的pygame实现及代码分析

本文详细介绍了如何使用Python的pygame库创建一款仿抖音网红的文字时钟,包括代码整合、删减和注释,同时提供了所需资源的获取方式,强调了Python的开源精神和简洁性。
摘要由CSDN通过智能技术生成

本文较长,适合收藏,慢慢研读分析。

2177a3c5c106ee69966a96ec104f7c2f.png

===========

一、开篇说明:

1.推荐指数:★★★★★

2.衷心感谢:原作者:执念执战(王成程)

3.代码说明:在原作者的基础上进行代码的整合、删减、增加、润色、注释,分享出来,仅供学习。

4.仿抖音网红文字时钟,目前有app可以下载,网上也有html和css的免费代码下载,python的很少,这怎么能让python缺席呢?

94538e7b428a587f43665c25d0cfb188.png

html代码实现的,网上有免费代码下载

==========================

二、python的pygame实现的效果图:

1.图:

a91bc0cbd112ebb41b0a707af3d7bedb.gif

2,非常漂亮。

★3.提前准备:★

3.1 python3以上,推荐python3.8

3.2 微软编辑器vscode

3.3 下载自己喜欢的字体,本文中hwfs=华文仿宋

3.4 二进制文件‘HZK16’,需要自己去下载。

请大家搜索原作者的博客(执念执战),也是对原作者的尊重,我故意留下一个小bug。

=============

三,代码及分析:

1.第1步:

#---第1步---导出模块---from math import *import pygamefrom pygame.locals import *import timeimport sysimport binascii  #任意中文字符时使用到此库import math

2.第2步:

#---第2步---初始化定义---#字符倍数比例函数,修改次数据可以实现整体的放大和缩小,建议此数值在0.8-1.3 之间,看起来比较合适fontmultiple=1#屏幕的宽和高,圆心坐标是屏幕大小的一半SCREEN_X_MAX = int(1500*fontmultiple) SCREEN_Y_MAX = int(1500*fontmultiple) #游戏初始化pygame.init()#本人喜欢加RESIZABLE,屏幕大小screen = pygame.display.set_mode((SCREEN_X_MAX,SCREEN_Y_MAX),RESIZABLE)FOCAL_DISTANCE = 512 #透视模型 

3.第3步:

#---第3步---颜色定义---BLACK=(0,0,0)WHITE=(255,255,255)RED=(255,0,0)GREEN=(0,255,0)BLUE=(0,0,255)ForeColor = RED #前景色和背景色BackColor = BLACK#中文字体,可以自己下载,hwfs=hwfsfont = pygame.font.Font('hwfs.ttf', 36)

4.第4步:原作者是放入一个py文件(Transform3D.py),用模块一样导出,我将他整合进去,删除不需要的部分。

#---第4步---3d相关定义---#定义画点函数---needdef Gui_Point(x,y,color):    pygame.draw.line(screen,color,(int(x),int(y)),(int(x+1),int(y)),2)#定义坐标结构体类---needclass zuobiaostruct:    def __init__(self):        self.x=0        self.y=0        self.z=0#矩阵相乘函数---needdef MATRIX_multiply(MAT1,MAT2):    newMAT=[[0.0 for i in range(4)] for n in range(4)]    for a in range(4):        for b in range(4):            newMAT[a][b]=MAT1[a][0]*MAT2[0][b]+MAT1[a][1]*MAT2[1][b]+MAT1[a][2]*MAT2[2][b]+MAT1[a][3]*MAT2[3][b]        return newMAT#矢量与矩阵相乘函数---needdef vector_matrix_MULTIPLY(Source,MAT):    Result=zuobiaostruct()    Result.x=Source.x*MAT[0][0]+Source.y*MAT[1][0]+Source.z*MAT[2][0]+MAT[3][0]    Result.y=Source.x*MAT[0][1]+Source.y*MAT[1][1]+Source.z*MAT[2][1]+MAT[3][1]    Result.z=Source.x*MAT[0][2]+Source.y*MAT[1][2]+Source.z*MAT[2][2]+MAT[3][2]    return Result #构造单位矩阵函数def structure_3D():    MAT=[[0.0 for i in range(4)] for i  in range(4)]    MAT[0][0]=1.0    MAT[0][1]=0.0    MAT[0][2]=0.0    MAT[0][3]=0.0    #// 1 0 0 0     MAT[1][0]=0.0    MAT[1][1]=1.0    MAT[1][2]=0.0    MAT[1][3]=0.0    #// 0 1 0 0    MAT[2][0]=0.0    MAT[2][1]=0.0    MAT[2][2]=1.0    MAT[2][3]=0.0   #// 0 0 1 0    MAT[3][0]=0.0    MAT[3][1]=0.0    MAT[3][2]=0.0    MAT[3][3]=1.0    #// 0 0 0 1        return MAT    #平移变换矩阵函数---needdef Translate3D(MAT,tx, ty, tz):    tMAT=[[0.0 for i in range(4)] for i  in range(4)]    tMAT[0][0]=1    tMAT[0][1]=0    tMAT[0][2]=0    tMAT[0][3]=0#//1 0 0 tx        tMAT[1][0]=0    tMAT[1][1]=1    tMAT[1][2]=0    tMAT[1][3]=0#//0 1 0 ty    tMAT[
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值