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深入学习之上下文管理器
Aug 31 Python
python实现比较两段文本不同之处的方法
May 30 Python
Python 两个列表的差集、并集和交集实现代码
Sep 21 Python
Python MySQL数据库连接池组件pymysqlpool详解
Jul 07 Python
python3 读写文件换行符的方法
Apr 09 Python
python实现寻找最长回文子序列的方法
Jun 02 Python
python3 中的字符串(单引号、双引号、三引号)以及字符串与数字的运算
Jul 18 Python
python实现广度优先搜索过程解析
Oct 19 Python
python virtualenv虚拟环境配置与使用教程详解
Jul 13 Python
Visual Studio Code搭建django项目的方法步骤
Sep 17 Python
python爬虫---requests库的用法详解
Sep 28 Python
OpenCV实现常见的四种图像几何变换
Apr 01 Python
关于的python五子棋的算法
python开发人人对战的五子棋小游戏
python pygame 开发五子棋双人对弈
May 02 #Python
Python开发简易五子棋小游戏
May 02 #Python
Python开发五子棋小游戏
python获取带有返回值的多线程
May 02 #Python
总结三种用 Python 作为小程序后端的方式
You might like
php的POSIX 函数以及进程测试的深入分析
2013/06/03 PHP
PHP中preg_match正则匹配中的/u、/i、/s含义
2015/04/17 PHP
PHP的Yii框架的基本使用示例
2015/08/21 PHP
PHP数学运算函数大汇总(经典值得收藏)
2016/04/01 PHP
PDO的安全处理与事物处理方法
2016/10/31 PHP
javawscript 三级菜单的实现原理
2009/07/01 Javascript
extjs 学习笔记(三) 最基本的grid
2009/10/15 Javascript
遨游,飞飞,IE,空中网 浏览器无提示关闭方法
2011/07/11 Javascript
事件冒泡是什么如何用jquery阻止事件冒泡
2013/03/20 Javascript
目前流行的JavaScript库的介绍及对比
2013/09/29 Javascript
分享20款美化网站的 jQuery Lightbox 灯箱插件
2014/10/10 Javascript
创建自己的jquery表格插件
2015/11/25 Javascript
JavaScript 数组some()和filter()的用法及区别
2016/05/20 Javascript
浅谈JS原生Ajax,GET和POST
2016/06/08 Javascript
jQuery插件echarts实现的多柱子柱状图效果示例【附demo源码下载】
2017/03/04 Javascript
xmlplus组件设计系列之列表(4)
2017/04/26 Javascript
jquery对table做排序操作的实例演示
2017/08/10 jQuery
Angularjs按需查询实例代码
2017/10/30 Javascript
利用js实现前后台传送Json的示例代码
2018/03/29 Javascript
用Node提供静态文件服务的方法
2018/07/06 Javascript
Three.js实现3D机房效果
2018/12/30 Javascript
node中使用log4js4.x版本记录日志的方法
2019/08/20 Javascript
深入理解javascript prototype的相关知识
2019/09/19 Javascript
微信小程序进入广告实现代码实例
2019/09/19 Javascript
深入理解NumPy简明教程---数组1
2016/12/17 Python
pycharm新建Vue项目的方法步骤(图文)
2020/03/04 Python
Python坐标轴操作及设置代码实例
2020/06/04 Python
PyCharm Community安装与配置的详细教程
2020/11/24 Python
Python排序函数的使用方法详解
2020/12/11 Python
纯HTML5+CSS3制作生日蛋糕代码
2016/11/16 HTML / CSS
使用HTML5的Canvas绘制曲线的简单方法
2015/09/08 HTML / CSS
护士的岗位职责
2013/12/04 职场文书
婚前财产公证书
2014/04/10 职场文书
爬山的活动方案
2014/08/16 职场文书
群众路线问题查摆对照检查材料
2014/10/04 职场文书
2015年安全生产月工作总结
2015/07/27 职场文书