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发送SMTP邮件的教程
Apr 29 Python
python的else子句使用指南
Feb 27 Python
Django中利用filter与simple_tag为前端自定义函数的实现方法
Jun 15 Python
python批量替换页眉页脚实例代码
Jan 22 Python
使用PyCharm创建Django项目及基本配置详解
Oct 24 Python
利用python循环创建多个文件的方法
Oct 25 Python
python实现的按要求生成手机号功能示例
Oct 08 Python
python实现批量文件重命名
Oct 31 Python
opencv python图像梯度实例详解
Feb 04 Python
Python获取对象属性的几种方式小结
Mar 12 Python
简述python Scrapy框架
Aug 17 Python
一篇文章带你搞定Ubuntu中打开Pycharm总是卡顿崩溃
Nov 02 Python
关于的python五子棋的算法
python开发人人对战的五子棋小游戏
python pygame 开发五子棋双人对弈
May 02 #Python
Python开发简易五子棋小游戏
May 02 #Python
Python开发五子棋小游戏
python获取带有返回值的多线程
May 02 #Python
总结三种用 Python 作为小程序后端的方式
You might like
PHP 身份验证方面的函数
2009/10/11 PHP
PHP ignore_user_abort函数详细介绍和使用实例
2014/07/15 PHP
详解PHP中cookie和session的区别及cookie和session用法小结
2016/06/12 PHP
PHP使用zlib扩展实现GZIP压缩输出的方法详解
2018/04/09 PHP
php使用curl伪造来源ip和refer的方法示例
2018/05/08 PHP
php 多个变量指向同一个引用($b = &$a)用法分析
2019/11/13 PHP
完整显示当前日期和时间的JS代码
2007/09/17 Javascript
用js判断页面刷新或关闭的方法(onbeforeunload与onunload事件)
2012/06/22 Javascript
Nodejs学习笔记之NET模块
2015/01/13 NodeJs
jquery实现公告翻滚效果
2015/02/27 Javascript
AngularJS中监视Scope变量以及外部调用Scope方法
2016/01/23 Javascript
学习JavaScript事件流和事件处理程序
2016/01/25 Javascript
BootStrap实现带关闭按钮功能
2017/02/15 Javascript
解决angularJS中input标签的ng-change事件无效问题
2018/09/13 Javascript
详解在Node.js中发起HTTP请求的5种方法
2019/01/10 Javascript
react-router-dom 嵌套路由的实现
2020/05/02 Javascript
编写v-for循环的技巧汇总
2020/12/01 Javascript
JavaScript中layim之整合右键菜单的示例代码
2021/02/06 Javascript
[03:53]2016国际邀请赛中国区预选赛第三日TOP10精彩集锦
2016/06/29 DOTA
python去除文件中空格、Tab及回车的方法
2016/04/12 Python
Python键盘输入转换为列表的实例
2018/06/23 Python
在PyTorch中Tensor的查找和筛选例子
2019/08/18 Python
python3 简单实现组合设计模式
2020/07/02 Python
python中turtle库的简单使用教程
2020/11/11 Python
Python Http请求json解析库用法解析
2020/11/28 Python
英智兴达软件测试笔试题
2016/10/12 面试题
先进个人获奖感言
2014/01/24 职场文书
倡议书格式范文
2014/04/14 职场文书
销售求职信范文
2014/05/26 职场文书
电焊工岗位工作职责
2014/07/09 职场文书
个人股份合作协议书
2014/10/24 职场文书
2014年学校食堂工作总结
2014/11/25 职场文书
经理聘任证明
2015/03/02 职场文书
2015年宣传部工作总结范文
2015/03/31 职场文书
就业指导讲座心得体会
2016/01/15 职场文书
为什么不建议在go项目中使用init()
2021/04/12 Golang