Python做一个计时器的动画
一、问题
在做连连看的时候需要加一个计时器的动画,这样就完成了计时功能的设计。
二、解决
主要思路:
1、先产生一个画布,用深颜色填充满。
2、产生一个新的矩阵用来覆盖画布,背景用白色,就可以渲染出来递减的感觉
3、动态改变填充的位置,就完成增加和减少时间的动画效果
# 时间画布、动画
self.time_counter = tk.Canvas(self.root, width=22, height=180, bg="yellow")
self.time_counter.place(x=615, y=80) # 时间显示
self.show_time = tk.Label(self.root, bg="lightgrey", fg="purple", font="叶根友毛笔行书2.0版 15 bold", text=f"剩余时间\n{self.__time}s")
self.show_time.place(x=590, y=20) # 计时函数
def counter(self):
"""
计时柱的构建
:return:
"""
try:
fill_line = self.time_counter.create_rectangle(1.5, 1.5, 23, 0, width=0, fill="white")
while self.__cycle >= 0: # self.time 做循环量处理
self.n += self.__scalar
# 移动开始减少
self.time_counter.coords(fill_line, (0, 0, 80, self.n))
self.root.update()
self.__time -= 1
self.show_time.configure(text=f"剩余时间\n{self.__time}s", fg="purple")
time.sleep(1.0) # 控制进度条流动的速度 1秒一次
# 时间结束 游戏结束 退出
if self.__time == 0:
tk.messagebox.showinfo("Tip", f"最后分数:{self.__score}")
self.__game_start = False
exit()
self.__cycle = self.__time # 保证了和时间的一致性
except Exception as e:
_ = e.__traceback__
exit() # 需要动态处理
def detail(self):
"""
消完之后做加分处理 加时处理
:return:
"""
# 加分处理
self.__score += self.__score_level * self.__score_base
self.show_score.configure(text=f"分数\n{self.__score}", fg="red") # 加时处理
# 由于一秒一减少 所以self.n的值和self.__time的值一样
self.__time += self.__add_time
self.n -= self.__scalar * self.__add_time
# 将溢出的全部删除
if self.__time >= self.__large_time:
self.show_time.configure(text=f"剩余时间\n{self.__large_time}s", fg="purple")
self.__time = self.__large_time
self.n = 0
else:
self.show_time.configure(text=f"剩余时间\n{self.__time}s", fg="purple")
三、结果呈现
四、总结
1、在使用的过程中,需要考虑循环的一致性,因此要采取while进行循环,而不是for。
2、为了保证在任何情况下都可以使用,因此我用速率来控制增加量
3、对游戏能否继续进行,进行判断不可以退出游戏
五、参考
如何做一个进度条,反过来就是一个时间计时器
GitHub链接:https://github.com/pzq7025/game
Python做一个计时器的动画的更多相关文章
- 用Python做一个知乎沙雕问题总结
用Python做一个知乎沙雕问题总结 松鼠爱吃饼干2020-04-01 13:40 前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以 ...
- 使用python做一个IRC在线下载器
使用python做一个IRC在线下载器 1.开发流程 2.软件流程 3.开始 3.0 准备工作 3.1寻找API接口 3.2 文件模块 3.2.1 选择文件弹窗 3.2.2 提取文件名 3.2.2.1 ...
- 用python做一个搜索引擎(Pylucene)
什么是搜索引擎? 搜索引擎是“对网络信息资源进行搜集整理并提供信息查询服务的系统,包括信息搜集.信息整理和用户查询三部分”.如图1是搜索引擎的一般结构,信息搜集模块从网络采集信息到网络信息库之中(一般 ...
- 用css3做一个求婚小动画
概述 本案例主要是运用到了css3的animation.keyframes.transform等属性,熟悉了,就可以做更多的其他动画效果,这几个属性功能非常强大. 详细 代码下载:http://www ...
- 在树莓派上用 python 做一个炫酷的天气预报
教大家如何在树莓派上自己动手做一个天气预报.此次教程需要大家有一定的python 基础,没有也没关系,文末我会放出我已写好的代码供大家下载. 首先在开始之前 需要申请高德地图API,去高德地图官网注册 ...
- 媳妇儿喜欢玩某音中的动漫特效,那我就用python做一个图片转化软件。
最近某音上的动漫特效特别火,很多人都玩着动漫肖像,我媳妇儿也不例外.看着她这么喜欢这个特效,我决定做一个图片处理工具,这样媳妇儿的动漫头像就有着落了.编码 为了快速实现我们的目标,我们 ...
- 用Python做一个简单的翻译工具
编程本身是跟年龄无关的一件事,不论你现在是十四五岁,还是四五十岁,如果你热爱它,并且愿意持续投入其中,必定会有所收获. 很多人学习python,不知道从何学起.很多人学习python,掌握了基本语法过 ...
- 一步步用svg做一个声波扩散动画
有个项目需要在某个坐标显示一个声波扩散(不知道这个表达对不对)的动画. 这种需求一般做法有几种,一种做成gif图片,然后贴上去,一种是用html+css3完成,要么就是画上去,这画又分两种,一种是Ca ...
- [Python] 用python做一个游戏辅助脚本,完整思路
一.说明 简述:本文将以4399小游戏<宠物连连看经典版2>作为测试案例,通过识别小图标,模拟鼠标点击,快速完成配对.对于有兴趣学习游戏脚本的同学有一定的帮助. 运行环境:Win10/Py ...
随机推荐
- 探秘JVM的底层奥秘
JVM的简单运行流程:主要将字节码文件加载到JVM的内存中,负责跨平台解释字节码文件到不同的操作系统. JVM的基本结构: 类加载器.执行引擎.运行时数据区域.本地接口 类的装载 加载.连接(验证.准 ...
- HTTP的发展历史和各个版本差别
HTTP前世今生 1989年,蒂姆·伯纳斯-李发表论文确立了三项关键技术: URI: 统一资源标志符,作为互联网上资源的唯一身份 HTML: 超文本标记语言,描述超文本文档 HTTP: 超文本传输协议 ...
- Spark GraphX图算法应用【分区策略、PageRank、ConnectedComponents,TriangleCount】
一.分区策略 GraphX采用顶点分割的方式进行分布式图分区.GraphX不会沿着边划分图形,而是沿着顶点划分图形,这可以减少通信和存储的开销.从逻辑上讲,这对应于为机器分配边并允许顶点跨越多台机器. ...
- Windows上安装运行Spark
1.下载Scala: https://www.scala-lang.org/download/ ①注意:必须下载官方要求的JDK版本,并设置JAVA_HOME,否则后面将出现很多麻烦! ②Scala当 ...
- (原)pytorch中使用TensorRT
转载请注明出处: https://www.cnblogs.com/darkknightzh/p/11332155.html 代码网址: https://github.com/darkknightzh/ ...
- 两个概念:CCA和LDA
典型相关性分析(CCA) https://blog.csdn.net/Mbx8X9u/article/details/78824216 典型关联分析(Canonical Correlation Ana ...
- Java数据类型(1)
基本数据类型 A.整型 byte:(8位--1个字节 有符号 以二进制补码表示) 范围:-27~27-1 即 -128~127 short:(16位--2个字节 有符号 以二进制补码表示) 范围:-2 ...
- 《linux就该这么学》课堂笔记14 Apache、SELinux、虚拟主机
1.目前能够提供Web网络服务的程序有IIS(Windows系统中默认的Web服务程序,是一款图形化的网站管理工具).Nginx和Apache(RHEL 7系统中默认的Web服务程序)等. Apach ...
- django的form 登录组件
1. 了解form 组件的原理 1.建立好form组件 class>>> 2.了解需要先is_valid() 判断是否可以取值 成功 form.cleaned_data 查看成功认证 ...
- Python前言之Pycharm常用快捷键
pycharm常用快捷键 ctrl+a 全选 ctrl+c 复制(默认复制整行) ctrl+v 粘贴 ctrl+x 剪切(默认复制整行) ctrl+f 搜索 ctrl+z 撤销 ctrl+shift+ ...