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 文件重命名工具代码
Jul 26 Python
Pyramid添加Middleware的方法实例
Nov 27 Python
Python访问MySQL封装的常用类实例
Nov 11 Python
Python3 正在毁灭 Python的原因分析
Nov 28 Python
浅谈用Python实现一个大数据搜索引擎
Nov 28 Python
python 字典中取值的两种方法小结
Aug 02 Python
利用Python将文本中的中英文分离方法
Oct 31 Python
扩展Django admin的list_filter()可使用范围方法
Aug 21 Python
Python Django框架url反向解析实现动态生成对应的url链接示例
Oct 18 Python
python 微信好友特征数据分析及可视化
Jan 07 Python
Keras中的两种模型:Sequential和Model用法
Jun 27 Python
python怎么对数字进行过滤
Jul 05 Python
关于的python五子棋的算法
python开发人人对战的五子棋小游戏
python pygame 开发五子棋双人对弈
May 02 #Python
Python开发简易五子棋小游戏
May 02 #Python
Python开发五子棋小游戏
python获取带有返回值的多线程
May 02 #Python
总结三种用 Python 作为小程序后端的方式
You might like
微信营销平台系统?刮刮乐的开发
2014/06/10 PHP
学习php设计模式 php实现合成模式(composite)
2015/12/08 PHP
thinkPHP框架实现的无限回复评论功能示例
2018/06/09 PHP
实例介绍PHP中zip_open()函数用法
2019/02/15 PHP
thinkPHP+mysql+ajax实现的仿百度一下即时搜索效果详解
2019/07/15 PHP
tp5框架基于ajax实现异步删除图片的方法示例
2020/02/10 PHP
用document.documentElement取代document.body的原因分析
2009/11/12 Javascript
jquery $.each 和for怎么跳出循环终止本次循环
2013/09/27 Javascript
jquery ajax post提交数据乱码
2013/11/05 Javascript
js如何获取兄弟、父类等节点
2014/01/06 Javascript
js登录弹出层特效
2014/03/07 Javascript
js冒泡、捕获事件及阻止冒泡方法详细总结
2014/05/08 Javascript
删除Javascript Object中间的key
2014/11/18 Javascript
JavaScript操作DOM元素的childNodes和children区别
2015/04/01 Javascript
jQuery Validate初步体验(一)
2015/12/12 Javascript
jQuery实现进度条效果代码
2015/12/17 Javascript
JavaScript必知必会(九)function 说起 闭包问题
2016/06/08 Javascript
Bootstrap基本组件学习笔记之分页(12)
2016/12/08 Javascript
angularjs使用div模拟textarea文本框的方法
2018/10/02 Javascript
IE11下处理Promise及Vue的单项数据流问题
2019/07/24 Javascript
微信小程序实现pdf、word等格式文件上传的方法
2019/09/10 Javascript
Python实现控制台进度条功能
2016/01/04 Python
Python面向对象类的继承实例详解
2018/06/27 Python
Windows下PyCharm安装图文教程
2018/08/27 Python
使用Python爬虫库requests发送表单数据和JSON数据
2020/01/25 Python
新版Pycharm中Matplotlib不会弹出独立的显示窗口的问题
2020/06/02 Python
Python流程控制语句的深入讲解
2020/06/15 Python
pycharm激活方法到2099年(激活流程)
2020/09/22 Python
浅谈Html5中视频 音频标签 进度条的问题
2016/07/26 HTML / CSS
海蓝之谜(LA MER)澳大利亚官方商城:全球高端奢华护肤品牌
2017/10/27 全球购物
2014年机关作风建设工作总结
2014/10/23 职场文书
办公室文员岗位职责
2015/02/04 职场文书
西湖英语导游词
2015/02/06 职场文书
教师专业技术工作总结2015
2015/05/13 职场文书
2019年大学毕业生个人自我鉴定范文大全
2019/03/21 职场文书
手把手带你彻底卸载MySQL数据库
2022/06/14 MySQL