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计算时间差的方法
May 20 Python
python结合selenium获取XX省交通违章数据的实现思路及代码
Jun 26 Python
Python中支持向量机SVM的使用方法详解
Dec 26 Python
python读取视频流提取视频帧的两种方法
Oct 22 Python
Python爬虫之正则表达式基本用法实例分析
Aug 08 Python
python使用requests模块实现爬取电影天堂最新电影信息
Apr 03 Python
基于Python批量生成指定尺寸缩略图代码实例
Nov 20 Python
Pytorch根据layers的name冻结训练方式
Jan 06 Python
PyTorch实现AlexNet示例
Jan 14 Python
基于Pytorch SSD模型分析
Feb 18 Python
sklearn+python:线性回归案例
Feb 24 Python
python中 _、__、__xx__()区别及使用场景
Jun 30 Python
关于的python五子棋的算法
python开发人人对战的五子棋小游戏
python pygame 开发五子棋双人对弈
May 02 #Python
Python开发简易五子棋小游戏
May 02 #Python
Python开发五子棋小游戏
python获取带有返回值的多线程
May 02 #Python
总结三种用 Python 作为小程序后端的方式
You might like
让PHP支持断点续传的源码
2010/05/16 PHP
使用PHP求两个文件的相对路径
2013/06/20 PHP
smarty简单分页的实现方法
2014/10/27 PHP
详谈php ip2long 出现负数的原因及解决方法
2017/04/05 PHP
jQuery textarea的长度进行验证
2009/05/06 Javascript
基于jquery+thickbox仿校内登录注册框
2010/06/07 Javascript
jquery获取特定name所有选中的checkbox,支持IE9标准模式
2013/03/18 Javascript
NodeJS学习笔记之网络编程
2014/08/03 NodeJs
Nodejs实现的一个简单udp广播服务器、客户端
2014/09/25 NodeJs
Jquery使用css方法改变样式实例
2015/05/18 Javascript
JavaScript中的getTime()方法使用详解
2015/06/10 Javascript
JQuery.validate在ie8下不支持的快速解决方法
2016/05/18 Javascript
js实现可旋转的立方体模型
2016/10/16 Javascript
jQuery实现点击关注和取消功能
2017/07/03 jQuery
微信小程序 转发功能的实现
2017/08/04 Javascript
Vue下滚动到页面底部无限加载数据的示例代码
2018/04/22 Javascript
js实现移动端轮播图
2020/12/21 Javascript
vue + typescript + 极验登录验证的实现方法
2019/06/27 Javascript
vue使用video插件vue-video-player的示例
2020/10/03 Javascript
Python随手笔记第一篇(2)之初识列表和元组
2016/01/23 Python
基于python的图片修复程序(实现水印去除)
2018/06/04 Python
TensorFlow 合并/连接数组的方法
2018/07/27 Python
python通用读取vcf文件的类(复制粘贴即可用)
2020/02/29 Python
python实现Pyecharts实现动态地图(Map、Geo)
2020/03/25 Python
Python matplotlib模块及柱状图用法解析
2020/08/10 Python
Python3 pyecharts生成Html文件柱状图及折线图代码实例
2020/09/29 Python
TensorFlow2.0使用keras训练模型的实现
2021/02/20 Python
澳大利亚网上买书:Angus & Robertson
2019/07/21 全球购物
科技开发中心办公室主任岗位责任制
2014/02/10 职场文书
工程建设实施方案
2014/03/14 职场文书
上海世博会志愿者口号
2014/06/17 职场文书
法定代表人资格证明书
2014/09/11 职场文书
学院党的群众路线教育实践活动整改方案
2014/10/04 职场文书
MySQL 聚合函数排序
2021/07/16 MySQL
实例详解Python的进程,线程和协程
2022/03/13 Python
Python+Pillow+Pytesseract实现验证码识别
2022/05/11 Python