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的ORM框架SQLObject入门实例
Apr 28 Python
在python2.7中用numpy.reshape 对图像进行切割的方法
Dec 05 Python
python自动化之Ansible的安装教程
Jun 13 Python
详解Django将秒转换为xx天xx时xx分
Sep 27 Python
python入门之井字棋小游戏
Mar 05 Python
Python dict和defaultdict使用实例解析
Mar 12 Python
python3注册全局热键的实现
Mar 22 Python
python中怎么表示空值
Jun 19 Python
利用scikitlearn画ROC曲线实例
Jul 02 Python
关于python3.7安装matplotlib始终无法成功的问题的解决
Jul 28 Python
Django多数据库联用实现方法解析
Nov 12 Python
详解python第三方库的安装、PyInstaller库、random库
Mar 03 Python
关于的python五子棋的算法
python开发人人对战的五子棋小游戏
python pygame 开发五子棋双人对弈
May 02 #Python
Python开发简易五子棋小游戏
May 02 #Python
Python开发五子棋小游戏
python获取带有返回值的多线程
May 02 #Python
总结三种用 Python 作为小程序后端的方式
You might like
让你的PHP同时支持GIF、png、JPEG
2006/10/09 PHP
推荐一本PHP程序猿都应该拜读的书
2014/12/31 PHP
PHP中$_SERVER使用说明
2015/07/05 PHP
PHP切割汉字的常用方法实例总结
2019/04/27 PHP
JS 常用校验函数
2009/03/26 Javascript
Javascript 错误处理的几种方法
2009/06/13 Javascript
编写Js代码要注意的几条规则
2010/09/10 Javascript
Javascript学习笔记一 之 数据类型
2010/12/15 Javascript
js 表单提交后按钮变灰的实例代码
2013/08/16 Javascript
JavaScript严格模式禁用With语句的原因
2014/10/20 Javascript
JS实现的4种数字千位符格式化方法分享
2015/03/02 Javascript
jQuery制作可自定义大小的拼图游戏
2015/03/30 Javascript
jquery实现点击查看更多内容控制段落文字展开折叠效果
2015/08/06 Javascript
pace.js页面加载进度条插件
2015/09/29 Javascript
js实现密码强度检测【附示例】
2016/03/30 Javascript
jQuery flip插件实现的翻牌效果示例【附demo源码下载】
2016/09/20 Javascript
微信小程序中显示html格式内容的方法
2017/04/25 Javascript
基于angular-utils-ui-breadcrumbs使用心得(分享)
2017/11/03 Javascript
详解javascript常用工具类的封装
2018/01/30 Javascript
JS解析后台返回的JSON格式数据实例
2018/08/06 Javascript
原生JS实现前端本地文件上传
2018/09/08 Javascript
记React connect的几种写法(小结)
2018/09/18 Javascript
JavaScript循环遍历你会用哪些之小结篇
2018/09/28 Javascript
React 源码中的依赖注入方法
2018/11/07 Javascript
Vue2.0实现组件之间数据交互和通信操作示例
2019/05/16 Javascript
微信小程序npm引入vant-weapp的踩坑记录
2019/08/01 Javascript
JS多个异步请求 按顺序执行next实现解析
2019/09/16 Javascript
Python复数属性和方法运算操作示例
2017/07/21 Python
django 微信网页授权认证api的步骤详解
2019/07/30 Python
python利用datetime模块计算程序运行时间问题
2020/02/20 Python
Python HTTP下载文件并显示下载进度条功能的实现
2020/04/02 Python
python中round函数如何使用
2020/06/19 Python
Daisy London官网:英国最大的首饰集团IBB旗下
2019/02/28 全球购物
社区灵活就业证明
2014/11/03 职场文书
如何制作自己的原生JavaScript路由
2021/05/05 Javascript
入门学习Go的基本语法
2021/07/07 Golang