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中使用zlib模块进行数据压缩的教程
Jun 26 Python
python读取TXT到数组及列表去重后按原来顺序排序的方法
Jun 26 Python
Python中urllib+urllib2+cookielib模块编写爬虫实战
Jan 20 Python
django1.8使用表单上传文件的实现方法
Nov 04 Python
Python使用PIL模块生成随机验证码
Nov 21 Python
分析Python读取文件时的路径问题
Feb 11 Python
Python单向链表和双向链表原理与用法实例详解
Aug 31 Python
Python面向对象程序设计多继承和多态用法示例
Apr 08 Python
python中with用法讲解
Feb 07 Python
基于Python中Remove函数的用法讨论
Dec 11 Python
python 装饰器的基本使用
Jan 13 Python
教你使用一行Python代码玩遍童年的小游戏
Aug 23 Python
关于的python五子棋的算法
python开发人人对战的五子棋小游戏
python pygame 开发五子棋双人对弈
May 02 #Python
Python开发简易五子棋小游戏
May 02 #Python
Python开发五子棋小游戏
python获取带有返回值的多线程
May 02 #Python
总结三种用 Python 作为小程序后端的方式
You might like
收听困难?教您超简便短波广播抗干扰方法!
2021/03/01 无线电
php实现购物车功能(上)
2020/07/23 PHP
php微信公众号开发(3)php实现简单微信文本通讯
2016/12/15 PHP
在 Laravel 中动态隐藏 API 字段的方法
2019/10/25 PHP
发一个自己用JS写的实用看图工具实现代码
2008/07/26 Javascript
判断滚动条到底部的JS代码
2013/11/04 Javascript
JavaScript的21条基本知识点
2014/03/04 Javascript
javascript内置对象操作详解
2015/02/04 Javascript
js实现浮动在网页右侧的简洁QQ在线客服代码
2015/09/04 Javascript
JavaScript面向对象程序设计教程
2016/03/29 Javascript
避免jQuery名字冲突 noConflict()方法
2016/07/30 Javascript
AngularJS利用Controller完成URL跳转
2016/08/09 Javascript
jQuery中常用动画效果函数(日常整理)
2016/09/17 Javascript
你真的了解BOM中的history对象吗
2017/02/13 Javascript
微信小程序 支付功能开发错误总结
2017/02/21 Javascript
基于代数方程库Algebra.js解二元一次方程功能示例
2017/06/09 Javascript
微信小程序媒体组件详解(视频,音乐,图片)
2017/09/19 Javascript
Iview Table组件中各种组件扩展的使用
2018/10/20 Javascript
React如何解决fetch跨域请求时session失效问题
2018/11/02 Javascript
vue使用nprogress加载路由进度条的方法
2020/06/04 Javascript
Python中optparse模块使用浅析
2015/01/01 Python
详细解读Python的web.py框架下的application.py模块
2015/05/02 Python
深度辨析Python的eval()与exec()的方法
2019/03/26 Python
python requests更换代理适用于IP频率限制的方法
2019/08/21 Python
Python 如何反方向迭代一个序列
2020/07/28 Python
结合CSS3的新特性来总结垂直居中的实现方法
2016/05/30 HTML / CSS
希尔顿酒店官方网站:Hilton Hotels
2017/06/01 全球购物
婴儿地球:Baby Earth
2018/12/25 全球购物
荷兰时尚精品店:Labels Fashion
2020/03/22 全球购物
开业庆典策划方案
2014/02/18 职场文书
财务总监管理岗位职责
2014/03/08 职场文书
高三高考决心书
2014/03/11 职场文书
商业项目策划方案
2014/06/05 职场文书
创先争优活动承诺书
2014/08/30 职场文书
刑事附带民事起诉状
2015/05/19 职场文书
「月刊Action」2022年5月号封面公开
2022/03/21 日漫