python开发制作好看的时钟效果


Posted in Python onMay 02, 2022

使用python制作好看的时钟,供大家参考,具体内容如下

游戏用到初高中使用的三角函数等知识开发,长话短说,上完整程序。

#-*- coding:utf-8 -*-
import sys,random,math,pygame
from pygame.locals import *
from datetime import datetime,date,time
def print_text(font,x,y,text,color=(255,255,255)):
    imgText=font.render(text,True,color)
    screen.blit(imgText,(x,y))
def wrap_angle(angle):
    return angle % 360
pygame.init()
screen=pygame.display.set_mode([600,500])
pygame.display.set_caption("AnalogClock")
font = pygame.font.Font(None,36)
orange=220,180,0
white=255,255,255
yellow=255,255,0
pink=255,100,100
pos_x=300
pos_y=250
radius=250
angle=260
while True:
    screen.fill([0,0,0])
    for event in pygame.event.get():
        if event.type==QUIT:
            sys.exit()
    keys=pygame.key.get_pressed()
    if keys[K_ESCAPE]:
        sys.exit()
        screen.fill([0,0,100])
    pygame.draw.circle(screen,white,(pos_x,pos_y),radius,6)
    for n in range(1,13):
        angle=math.radians(n*(360/12)-90)
        x=math.cos(angle)*(radius-20)-10
        y=math.sin(angle)*(radius-20)-10
        print_text(font, pos_x+x, pos_y+y, str(n))
    today=datetime.today()
    hours=today.hour % 12
    minutes=today.minute
    seconds=today.second
    hour_angle=wrap_angle(hours*(360/12)-90)
    hour_angle=math.radians(hour_angle)
    hour_x=math.cos(hour_angle)*(radius-80)
    hour_y=math.sin(hour_angle)*(radius-80)
    target=(pos_x+hour_x,pos_y+hour_y)
    pygame.draw.line(screen,pink,(pos_x,pos_y),target,25)
    min_angle=wrap_angle(minutes*(260/60)-90)
    min_angle=math.radians(min_angle)
    min_x=math.cos(min_angle)*(radius-60)
    min_y=math.sin(min_angle)*(radius-60)
    target=(pos_x+min_x,pos_y+min_y)
    pygame.draw.line(screen,orange,(pos_x,pos_y),target,12)
    sec_angle=wrap_angle(seconds*(360/60)-90)
    sec_angle=math.radians(sec_angle)
    sec_x=math.cos(sec_angle)*(radius-40)
    sec_y=math.sin(sec_angle)*(radius-40)
    target=(pos_x+sec_x,pos_y+sec_y)
    pygame.draw.line(screen,yellow,(pos_x,pos_y),target,6)
    pygame.draw.circle(screen,white,(pos_x,pos_y),20)
    print_text(font, 0, 0, str(hours)+":"+str(minutes)+":"+str(seconds))
    pygame.display.update()

编译后的到的结果为:

python开发制作好看的时钟效果

是不是挺有趣的,游戏开发就是要用到很多的算法,以后的路还得慢慢的努力了。

以上就是本文的全部内容,希望对大家的学习有所帮助。


Tags in this post...

Python 相关文章推荐
Python开发的单词频率统计工具wordsworth使用方法
Jun 25 Python
Python中实现两个字典(dict)合并的方法
Sep 23 Python
Tensorflow之Saver的用法详解
Apr 23 Python
python利用smtplib实现QQ邮箱发送邮件
May 20 Python
python实现ID3决策树算法
Aug 29 Python
解决python3 Pycharm上连接数据库时报错的问题
Dec 03 Python
Python函数装饰器实现方法详解
Dec 22 Python
django框架forms组件用法实例详解
Dec 10 Python
python 求10个数的平均数实例
Dec 16 Python
Python PIL库图片灰化处理
Apr 07 Python
python speech模块的使用方法
Sep 09 Python
python字典按照value排序方法
Dec 28 Python
关于的python五子棋的算法
python开发人人对战的五子棋小游戏
python pygame 开发五子棋双人对弈
May 02 #Python
Python开发简易五子棋小游戏
May 02 #Python
Python开发五子棋小游戏
python获取带有返回值的多线程
May 02 #Python
总结三种用 Python 作为小程序后端的方式
You might like
十大催泪虐心动漫,你能坚持看到第几部?
2020/03/04 日漫
人族 TERRAN 概述
2020/03/14 星际争霸
CI框架开发新浪微博登录接口源码完整版
2014/05/28 PHP
PHP常用处理静态操作类
2015/04/03 PHP
php实现的AES加密类定义与用法示例
2018/01/29 PHP
JQery 渐变图片导航效果代码 漂亮
2010/01/01 Javascript
jQuery 树形结构的选择器
2010/02/15 Javascript
nullJavascript中创建对象的五种方法实例
2013/05/07 Javascript
js获取下拉列表的值和元素个数示例
2014/05/07 Javascript
JS实现跟随鼠标的链接文字提示框效果
2015/08/06 Javascript
javascript学习小结之prototype
2015/12/03 Javascript
jquery获取css的color值返回RGB的方法
2015/12/18 Javascript
Validform+layer实现漂亮的表单验证特效
2016/01/17 Javascript
使用JavaScript实现弹出层效果的简单实例
2016/05/31 Javascript
vue2.0 better-scroll 实现移动端滑动的示例代码
2018/01/25 Javascript
基于vue手写tree插件的那点事儿
2019/08/20 Javascript
vue组件是如何解析及渲染的?
2021/01/13 Vue.js
[02:57]2014DOTA2国际邀请赛 选手辛苦解说更辛苦
2014/07/10 DOTA
[55:32]2018DOTA2亚洲邀请赛 4.4 淘汰赛 EG vs LGD 第二场
2018/04/05 DOTA
Python函数式编程指南(二):从函数开始
2015/06/24 Python
python实现字符串连接的三种方法及其效率、适用场景详解
2017/01/13 Python
Python实现的批量修改文件后缀名操作示例
2018/12/07 Python
浅谈Python小波分析库Pywavelets的一点使用心得
2019/07/09 Python
Python Pandas 转换unix时间戳方式
2019/12/07 Python
a标签下载链接的简单实现
2016/09/13 HTML / CSS
ProBikeKit英国:在线公路自行车之家
2017/02/10 全球购物
约瑟夫·特纳男装:Joseph Turner
2017/10/10 全球购物
医生实习工作总结的自我评价
2013/09/27 职场文书
外贸英语毕业生自荐信
2013/11/14 职场文书
春节请假条
2014/04/11 职场文书
员工激励培训演讲稿
2014/09/16 职场文书
出纳试用期自我评价
2015/03/10 职场文书
安全生产学习心得体会
2016/01/18 职场文书
PHP使用非对称加密算法RSA
2021/04/21 PHP
关于CentOS 8 搭建MongoDB4.4分片集群的问题
2021/10/24 MongoDB
详解MySQL的主键查询为什么这么快
2022/04/03 MySQL