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 相关文章推荐
写了个监控nginx进程的Python脚本
May 10 Python
Python生成验证码实例
Aug 21 Python
python获取从命令行输入数字的方法
Apr 29 Python
Python在Windows和在Linux下调用动态链接库的教程
Aug 18 Python
python操作oracle的完整教程分享
Jan 30 Python
python+opencv识别图片中的圆形
Mar 25 Python
Face++ API实现手势识别系统设计
Nov 21 Python
解决Python二维数组赋值问题
Nov 28 Python
pytorch构建多模型实例
Jan 15 Python
.dcm格式文件软件读取及python处理详解
Jan 16 Python
pandas DataFrame.shift()函数的具体使用
May 24 Python
Python学习之迭代器详解
Apr 01 Python
关于的python五子棋的算法
python开发人人对战的五子棋小游戏
python pygame 开发五子棋双人对弈
May 02 #Python
Python开发简易五子棋小游戏
May 02 #Python
Python开发五子棋小游戏
python获取带有返回值的多线程
May 02 #Python
总结三种用 Python 作为小程序后端的方式
You might like
基于php在各种web服务器的运行模式详解
2013/06/03 PHP
PHP函数preg_match_all正则表达式的基本使用详细解析
2013/08/31 PHP
PHP、Python和Javascript的装饰器模式对比
2015/02/03 PHP
YII Framework框架教程之使用YIIC快速创建YII应用详解
2016/03/15 PHP
PHP实现的ID混淆算法类与用法示例
2018/08/10 PHP
JavaScript中发布/订阅模式的简单实例
2014/11/05 Javascript
Nodejs学习笔记之NET模块
2015/01/13 NodeJs
JS实现自动定时切换的简洁网页选项卡效果
2015/10/13 Javascript
jQuery 限制输入字符串长度
2016/06/20 Javascript
jQuery实现文档树效果
2017/02/20 Javascript
JS验证input输入框(字母,数字,符号,中文)
2017/03/23 Javascript
详解在AngularJS的controller外部直接获取$scope
2017/06/02 Javascript
jQuery扩展_动力节点Java学院整理
2017/07/05 jQuery
boostrap模态框二次弹出清空原有内容的方法
2018/08/10 Javascript
解决Layui选择全部,换页checkbox复选框重新勾选的问题方法
2018/08/14 Javascript
js前端面试之同步与异步问题详解
2019/04/03 Javascript
详解JavaScript中的强制类型转换
2019/04/15 Javascript
localstorage实现带过期时间的缓存功能
2019/06/28 Javascript
[04:45]上海特级锦标赛主赛事第三日TOP10
2016/03/05 DOTA
[01:21:36]CHAOS vs Alliacne 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
python xml解析实例详解
2016/11/14 Python
selenium python浏览器多窗口处理代码示例
2018/01/15 Python
在IPython中执行Python程序文件的示例
2018/11/01 Python
Python去除字符串前后空格的几种方法
2019/03/04 Python
python操作日志的封装方法(两种方法)
2019/05/23 Python
python 导入数据及作图的实现
2019/12/03 Python
Anconda环境下Vscode安装Python的方法详解
2020/03/29 Python
Python自动创建Excel并获取内容
2020/09/16 Python
HTML5打开本地app应用的方法
2016/03/31 HTML / CSS
英国人最爱的饰品网站:Accessorize
2016/08/22 全球购物
澳大利亚购买健身器材网站:Gym Direct
2019/12/19 全球购物
医院护士见习期自我鉴定
2014/04/10 职场文书
爱祖国爱家乡演讲稿
2014/09/02 职场文书
购房协议书范本
2014/10/02 职场文书
培训简讯范文
2015/07/20 职场文书
字节飞书面试promise.all实现示例
2022/06/16 Javascript