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实现的简单dns查询功能示例
May 24 Python
Python使用django搭建web开发环境
Jun 09 Python
python引入导入自定义模块和外部文件的实例
Jul 24 Python
python 二分查找和快速排序实例详解
Oct 13 Python
python 将字符串转换成字典dict的各种方式总结
Mar 23 Python
python使用rpc框架gRPC的方法
Aug 24 Python
python实现人机猜拳小游戏
Feb 03 Python
在Python 的线程中运行协程的方法
Feb 24 Python
从零开始的TensorFlow+VScode开发环境搭建的步骤(图文)
Aug 31 Python
Python 实现进度条的六种方式
Jan 06 Python
Django实现drf搜索过滤和排序过滤
Jun 21 Python
pytorch实现加载保存查看checkpoint文件
Jul 15 Python
关于的python五子棋的算法
python开发人人对战的五子棋小游戏
python pygame 开发五子棋双人对弈
May 02 #Python
Python开发简易五子棋小游戏
May 02 #Python
Python开发五子棋小游戏
python获取带有返回值的多线程
May 02 #Python
总结三种用 Python 作为小程序后端的方式
You might like
BBS(php & mysql)完整版(一)
2006/10/09 PHP
Discuz 6.0+ 批量注册用户名
2009/09/13 PHP
浅析THINKPHP的addAll支持的最大数据量
2015/02/03 PHP
PHP函数shuffle()取数组若干个随机元素的方法分析
2016/04/02 PHP
jQuery load方法用法集锦
2011/12/06 Javascript
动态加载脚本提升javascript性能
2014/02/24 Javascript
调试代码导致IE出错的避免方法
2014/04/04 Javascript
使用JavaScript获取电池状态的方法
2014/05/03 Javascript
常常会用到的截取字符串substr()、substring()、slice()方法详解
2015/12/16 Javascript
angularjs 源码解析之scope
2016/08/22 Javascript
JavaScript实现向select下拉框中添加和删除元素的方法
2017/03/07 Javascript
ES6数组的扩展详解
2017/04/25 Javascript
浅析node.js的模块加载机制
2018/05/25 Javascript
vue-cli V3.0版本的使用详解
2018/10/24 Javascript
微信小程序实现保存图片到相册功能
2018/11/30 Javascript
Vuejs监听vuex中值的变化的方法示例
2018/12/02 Javascript
Vue+ElementUI 中级联选择器Bug问题的解决
2020/07/31 Javascript
使用JavaScript和MQTT开发物联网应用示例解析
2020/08/07 Javascript
JSON 入门教程基础篇 json入门学习笔记
2020/09/22 Javascript
django 微信网页授权登陆的实现
2019/07/30 Python
Pytorch 实现计算分类器准确率(总分类及子分类)
2020/01/18 Python
python pandas.DataFrame.loc函数使用详解
2020/03/26 Python
浅析css3中matrix函数的使用
2016/06/06 HTML / CSS
HTML5 Convas APIs方法详解
2015/04/24 HTML / CSS
StubHub西班牙:购买和出售全球活动门票
2017/06/05 全球购物
彼得罗夫美国官网:Peter Thomas Roth美国(青瓜面膜)
2017/11/05 全球购物
资产评估专业大学生求职信
2013/09/29 职场文书
给医务人员表扬信
2014/01/12 职场文书
党风廉政承诺书
2014/03/27 职场文书
2014年最新领导班子整改方案
2014/09/27 职场文书
工作骂脏话检讨书
2014/10/05 职场文书
四十年同学聚会致辞
2015/07/28 职场文书
go原生库的中bytes.Buffer用法
2021/04/25 Golang
GoLang中生成UUID唯一标识的实现
2021/05/08 Golang
SQL注入篇学习之盲注/宽字节注入
2022/03/03 MySQL
2021好看的国漫排行榜前十名 《完美世界》上榜,《元龙》排名第一
2022/03/18 国漫