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使用PyGreSQL操作PostgreSQL数据库教程
Jul 30 Python
Python中的列表知识点汇总
Apr 14 Python
python中函数总结之装饰器闭包详解
Jun 12 Python
Python中线程的MQ消息队列实现以及消息队列的优点解析
Jun 29 Python
django2+uwsgi+nginx上线部署到服务器Ubuntu16.04
Jun 26 Python
如何用Python实现简单的Markdown转换器
Jul 16 Python
python匹配两个短语之间的字符实例
Dec 25 Python
python3.6+selenium实现操作Frame中的页面元素
Jul 16 Python
基于python全局设置id 自动化测试元素定位过程解析
Sep 04 Python
Numpy之reshape()使用详解
Dec 26 Python
浅谈pytorch、cuda、python的版本对齐问题
Jan 15 Python
python实战之90行代码写个猜数字游戏
Apr 22 Python
关于的python五子棋的算法
python开发人人对战的五子棋小游戏
python pygame 开发五子棋双人对弈
May 02 #Python
Python开发简易五子棋小游戏
May 02 #Python
Python开发五子棋小游戏
python获取带有返回值的多线程
May 02 #Python
总结三种用 Python 作为小程序后端的方式
You might like
Terran剧情介绍
2020/03/14 星际争霸
php 获取一个月第一天与最后一天的代码
2010/05/16 PHP
解析mysql中UNIX_TIMESTAMP()函数与php中time()函数的区别
2013/06/24 PHP
PHP静态文件生成类实例
2014/11/29 PHP
基于PHP+jQuery+MySql实现红蓝(顶踩)投票代码
2015/08/25 PHP
Laravel框架实现利用监听器进行sql语句记录功能
2018/06/06 PHP
PHP中的Iterator迭代对象属性详解
2019/04/12 PHP
使用onbeforeunload属性后的副作用
2007/03/08 Javascript
解决extjs在firefox中关闭窗口再打开后iframe中js函数访问不到的问题
2008/11/06 Javascript
javascript写的日历类(基于pj)
2010/12/28 Javascript
JS获取并操作iframe中元素的方法
2013/03/21 Javascript
jQuery function的正确书写方法
2013/08/02 Javascript
关于js原型的面试题讲解
2016/09/25 Javascript
vue动态组件实现选项卡切换效果
2017/03/08 Javascript
使用Vue开发动态刷新Echarts组件的教程详解
2018/03/22 Javascript
浅谈mvvm-simple双向绑定简单实现
2018/04/18 Javascript
浅入深出Vue之组件使用
2019/07/11 Javascript
[05:08]2014DOTA2国际邀请赛 Hao专访复仇的胜利很爽
2014/07/15 DOTA
[01:04:06]DOTA2上海特级锦标赛A组资格赛#2 Secret VS EHOME第一局
2016/02/26 DOTA
Python用list或dict字段模式读取文件的方法
2017/01/10 Python
windows系统中Python多版本与jupyter notebook使用虚拟环境的过程
2019/05/15 Python
详解Python中的各种转义符\n\r\t
2019/07/10 Python
Python实现的爬取豆瓣电影信息功能案例
2019/09/15 Python
Matlab中plot基本用法的具体使用
2020/07/17 Python
使用Canvas操作像素的方法
2018/06/14 HTML / CSS
HTML5中外部浏览器唤起微信分享
2020/01/02 HTML / CSS
C#如何调用Word并打开一个Word文档
2013/05/08 面试题
高职助产应届生自荐信
2013/09/24 职场文书
内勤主管岗位职责
2014/04/03 职场文书
医院标语大全
2014/06/23 职场文书
奉献爱心演讲稿
2014/09/04 职场文书
开展党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
2014年度考核工作总结
2014/12/24 职场文书
英语专业毕业论文答辩开场白
2015/05/27 职场文书
会议营销主持词
2015/07/03 职场文书
Django利用AJAX技术实现博文实时搜索
2021/05/06 Python