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实现FTP上传文件或文件夹实例(递归)
Jan 16 Python
python向已存在的excel中新增表,不覆盖原数据的实例
May 02 Python
python2 与 python3 实现共存的方法
Jul 12 Python
用python统计代码行的示例(包括空行和注释)
Jul 24 Python
Python Flask框架扩展操作示例
May 03 Python
使用APScheduler3.0.1 实现定时任务的方法
Jul 22 Python
TensorFlow2.0矩阵与向量的加减乘实例
Feb 07 Python
Python virtualenv虚拟环境实现过程解析
Apr 18 Python
python实现猜数游戏(保存游戏记录)
Jun 22 Python
Python使用OpenPyXL处理Excel表格
Jul 02 Python
python将数据插入数据库的代码分享
Aug 16 Python
详解Python流程控制语句
Oct 28 Python
关于的python五子棋的算法
python开发人人对战的五子棋小游戏
python pygame 开发五子棋双人对弈
May 02 #Python
Python开发简易五子棋小游戏
May 02 #Python
Python开发五子棋小游戏
python获取带有返回值的多线程
May 02 #Python
总结三种用 Python 作为小程序后端的方式
You might like
mysql_connect localhost和127.0.0.1的区别(网络层阐述)
2015/03/26 PHP
Laravel5中Cookie的使用详解
2017/05/03 PHP
PHP使Laravel为JSON REST API返回自定义错误的问题
2018/10/16 PHP
浅析用prototype定义自己的方法
2013/11/14 Javascript
调用DOM对象的focus使文本框获得焦点
2014/02/19 Javascript
node.js中的fs.fchown方法使用说明
2014/12/16 Javascript
JQuery显示隐藏DIV的方法及代码实例
2015/04/16 Javascript
jQuery插件windowScroll实现单屏滚动特效
2015/07/14 Javascript
浅谈JavaScript中setInterval和setTimeout的使用问题
2015/08/01 Javascript
AngularJS实现textarea记录只能输入规定数量的字符并显示
2016/04/26 Javascript
jQuery给表格添加分页效果
2017/03/02 Javascript
ES6入门教程之Iterator与for...of循环详解
2017/05/17 Javascript
Node.js连接mongodb实例代码
2017/06/06 Javascript
简单快速的实现js计算器功能
2017/08/17 Javascript
修改UA在PC中访问只能在微信中打开的链接方法
2017/11/27 Javascript
原生js实现公告滚动效果
2021/01/10 Javascript
小程序二次贝塞尔曲线实现购物车商品曲线飞入效果
2019/01/07 Javascript
微信小程序利用swiper+css实现购物车商品删除功能
2019/03/06 Javascript
Node.js API详解之 module模块用法实例分析
2020/05/13 Javascript
jQuery 动画与停止动画效果实例详解
2020/05/19 jQuery
vue中移动端调取本地的复制的文本方式
2020/07/18 Javascript
python发送邮件接收邮件示例分享
2014/01/21 Python
python实现八大排序算法(1)
2017/09/14 Python
python中logging包的使用总结
2018/02/28 Python
在NumPy中创建空数组/矩阵的方法
2018/06/15 Python
Pytorch实现LSTM和GRU示例
2020/01/14 Python
tensorflow通过模型文件,使用tensorboard查看其模型图Graph方式
2020/01/23 Python
如何基于Python代码实现高精度免费OCR工具
2020/06/18 Python
Python根据字典的值查询出对应的键的方法
2020/09/30 Python
HTML5是什么 HTML5是什么意思 HTML5简介
2012/10/26 HTML / CSS
用HTML5实现鼠标滚轮事件放大缩小图片的功能
2015/06/25 HTML / CSS
微信小程序canvas实现水平、垂直居中效果
2020/02/05 HTML / CSS
美国保健品专家:Life Extension
2018/05/04 全球购物
施工单位安全责任书
2014/07/24 职场文书
兵马俑导游词
2015/02/02 职场文书
python中__slots__节约内存的具体做法
2021/07/04 Python