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中stdout输出不缓存的设置方法
May 29 Python
深入理解Python 代码优化详解
Oct 27 Python
浅析Python中的join()方法的使用
May 19 Python
在Linux系统上安装Python的Scrapy框架的教程
Jun 11 Python
python中map()函数的使用方法示例
Sep 29 Python
Python中摘要算法MD5,SHA1简介及应用实例代码
Jan 09 Python
python通过百度地图API获取某地址的经纬度详解
Jan 28 Python
Python基于datetime或time模块分别获取当前时间戳的方法实例
Feb 19 Python
修改Pandas的行或列的名字(重命名)
Dec 18 Python
Python Numpy 控制台完全输出ndarray的实现
Feb 19 Python
利用Python裁切tiff图像且读取tiff,shp文件的实例
Mar 10 Python
Python中常用的os操作汇总
Nov 05 Python
关于的python五子棋的算法
python开发人人对战的五子棋小游戏
python pygame 开发五子棋双人对弈
May 02 #Python
Python开发简易五子棋小游戏
May 02 #Python
Python开发五子棋小游戏
python获取带有返回值的多线程
May 02 #Python
总结三种用 Python 作为小程序后端的方式
You might like
PHP生成便于打印的网页
2006/10/09 PHP
php缓冲 output_buffering的使用详解
2013/06/13 PHP
PHP中SimpleXML函数用法分析
2014/11/26 PHP
PHP简单实现生成txt文件到指定目录的方法
2016/04/25 PHP
一波PHP中cURL库的常见用法代码示例
2016/05/06 PHP
php each 返回数组中当前的键值对并将数组指针向前移动一步实例
2016/11/22 PHP
再论Javascript的类继承
2011/03/05 Javascript
基于jquery的has()方法以及与find()方法以及filter()方法的区别详解
2013/04/26 Javascript
js实现幻灯片效果(基于jquery插件)
2013/11/05 Javascript
基于HTML+CSS,jQuery编写的简易计算器后续(添加了键盘监听)
2016/01/05 Javascript
通过JS获取Request.QueryString()参数的值实现方法
2016/09/27 Javascript
jquery checkbox的相关操作总结
2016/10/17 Javascript
Angularjs 设置全局变量的方法总结
2016/10/20 Javascript
JavaScript自定义分页样式
2017/01/17 Javascript
js断点调试经验分享
2017/12/08 Javascript
JavaScript ES6箭头函数使用指南
2018/12/30 Javascript
JS实现倒序输出的几种常用方法示例
2019/04/13 Javascript
[01:17]辉夜杯战队访谈宣传片—EHOME
2015/12/25 DOTA
[02:56]DOTA2上海特锦赛小组赛解说FreeAgain采访花絮
2016/02/27 DOTA
Python GUI Tkinter简单实现个性签名设计
2018/06/19 Python
判断python字典中key是否存在的两种方法
2018/08/10 Python
Python Learning 列表的更多操作及示例代码
2018/08/22 Python
Django forms组件的使用教程
2018/10/08 Python
python实现在图片上画特定大小角度矩形框
2018/10/24 Python
在Tensorflow中实现leakyRelu操作详解(高效)
2020/06/30 Python
快速解释如何使用pandas的inplace参数的使用
2020/07/23 Python
html5服务器推送_动力节点Java学院整理
2017/07/12 HTML / CSS
西班牙香水和化妆品连锁店:Druni
2019/05/05 全球购物
物理教育专业毕业生推荐信
2013/11/03 职场文书
计算机系统管理员求职信
2014/06/20 职场文书
小学生九一八纪念日83周年演讲稿500字
2014/09/17 职场文书
罚站检讨书
2015/01/29 职场文书
2015年政协委员工作总结
2015/05/20 职场文书
2015年信息化建设工作总结
2015/07/23 职场文书
HR在给员工开具离职证明时,需要注意哪些问题?
2019/07/03 职场文书
2019辞职报告范本3篇!
2019/07/23 职场文书