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 ...
随机推荐
- 实体类id的几种生成方式
@Id// @GeneratedValue(strategy = GenerationType.AUTO) // 自增// @GeneratedValue(strategy = GenerationT ...
- kibana自动创建索引
一般索引按月.季或年为单位创建索引.我这里写成logstash-www-2019-03,www是URL的二级域名.格式类型完全根据自己方便就行. 当ELK集群中的索引过多时,我这里有100多个不同的日 ...
- Python面试题(2)
1.一行代码实现1-100的和 ? 1 2 3 print(sum(range(1,101))) #range中的参数是1<=i<101 #sum是计算参数的和 2.在函数内部改变全局变量 ...
- 微信2.1 for Windows发布 微信群可多人语音或视频通话
5月31日,windows电脑版微信发布更新,微信2.1 for Windows带来最主要的功能是微信群可以多人语音或视频通话了,建个家庭群组,常年在外工作的家人也可以每天见面了,多亲切! 除了可以建 ...
- yugabyte 安装pg_hashids 扩展
主要目的比较简单,就是测试下yugabyte 对于pg 扩展的支持,今天在测试plv8的时候发现有问题(以及提交issue了,很期待官方的解决) 所以测试下一个其他的扩展,看看是否像官方介绍的那样 环 ...
- 踩iviewui中Tabs 标签页数据绑定坑
今天小颖要实现点击Tabs 标签页中每个标签,并动态获取当前点击的标签值. 一句话说不清楚,那就看动态图吧 小颖一开始看官网写的代码是: <template> <Tabs :valu ...
- 【转】C++11新特性——lambda表达式
C++11的一大亮点就是引入了Lambda表达式.利用Lambda表达式,可以方便的定义和创建匿名函数.对于C++这门语言来说来说,“Lambda表达式”或“匿名函数”这些概念听起来好像很深奥,但很多 ...
- Redis有哪些数据结构
String 这应该是应用最广泛的了,简单的 key-value 类型.value 不仅可以是 String,也可以是数字.还可以享受 Redis 的定时持久化(可以选择 RDB 模式或者 AOF 模 ...
- Huffman树与Huffman编码
1.Huffman树 今天复习Huffman树.依稀记得自己被Huffman树虐的经历.还记得是7月份,我刚开始看数据结构与算法,根本看不懂Huffman树的操作.后来我终于悟出了Huffman树是怎 ...
- 【JZOJ6239】【20190629】智慧树
题目 一颗\(n\)个节点的树,每个点有一个权值\(a_i\) 询问树上连通块权值之和对 \(m\) 取模为$ x $ 的方案数 答案对\(950009857\) 取模,满足\(m | 9500098 ...