Python tkinter实现的图片移动碰撞动画效果【附源码下载】


Posted in Python onJanuary 04, 2018

本文实例讲述了Python tkinter实现的图片移动碰撞动画效果。分享给大家供大家参考,具体如下:

先来看看运行效果:

Python tkinter实现的图片移动碰撞动画效果【附源码下载】

具体代码如下:

#!/usr/bin/python
# -*- coding: utf-8 -*-
import time
try:
 from tkinter import *
except ImportError: #Python 2.x
 PythonVersion = 2
 from Tkinter import *
 from tkFont import Font
 from ttk import *
 from tkMessageBox import *
 import tkFileDialog
else: #Python 3.x
 PythonVersion = 3
 from tkinter.font import Font
 from tkinter.ttk import *
 from tkinter.messagebox import *
# 配置
# 要打开的图像
image1 = "open.gif"
# 初始坐标
x0 = 50.0
y0 = 50.0
# 列表将包含所有的x和y坐标.到目前为止,他们只包含初始坐标
x = [x0]
y = [y0]
# 每次移动的速度或距离
vx = 1.0# x 速度
vy = 0.5# y 速度
# 边界,这里要考虑到图片的大小,要预留一半的长和宽
x_min = 46.0
y_min = 46.0
x_max = 754.0
y_max = 554.0
# 图片间隔时间,要动画效果,此处设为每秒40帧
sleep_time = 0.025
# 运行步数
range_min = 1
range_max = 2000
# 创建500次的x和y坐标
for t in range(range_min, range_max):
 # 新坐标等于旧坐标加每次移动的距离
 new_x = x[t - 1] + vx
 new_y = y[t - 1] + vy
 # 如果已经越过边界,反转方向
 if new_x >= x_max or new_x <= x_min:
  vx = vx * -1.0
 if new_y >= y_max or new_y <= y_min:
  vy = vy * -1.0
 # 添加新的值到列表
 x.append(new_x)
 y.append(new_y)
# 开始使用tk绘图
root = Tk()
root.title("三水点靠木 tkinter动画测试") #在这里修改窗口的标题
canvas = Canvas(width=800, height=600, bg='white')
canvas.pack()
photo1 = PhotoImage(file=image1)
width1 = photo1.width()
height1 = photo1.height()
image_x = (width1) / 2.0
image_y = (height1) / 2.0
# 每次的移动
for t in range(range_min, range_max):
 canvas.create_image(x[t], y[t], image=photo1, tag="pic")
 canvas.update()
 # 暂停0.05妙,然后删除图像
 time.sleep(sleep_time)
 canvas.delete("pic")
root.mainloop()

附:完整实例代码点击此处本站下载

注:tkinter只能识别gif格式图片,将jpg或png格式图片后缀名简单改成gif是不能识别的!

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
python模拟登陆阿里妈妈生成商品推广链接
Apr 03 Python
Python lambda和Python def区别分析
Nov 30 Python
Python爬虫实现(伪)球迷速成
Jun 10 Python
python3结合openpyxl库实现excel操作的实例代码
Sep 11 Python
django ManyToManyField多对多关系的实例详解
Aug 09 Python
Python Celery多队列配置代码实例
Nov 22 Python
将pycharm配置为matlab或者spyder的用法说明
Jun 08 Python
python能开发游戏吗
Jun 11 Python
Scrapy爬虫文件批量运行的实现
Sep 30 Python
用python写PDF转换器的实现
Oct 29 Python
Python做图像处理及视频音频文件分离和合成功能
Nov 24 Python
利用python+ffmpeg合并B站视频及格式转换的实例代码
Nov 24 Python
Python给你的头像加上圣诞帽
Jan 04 #Python
Python编程实现线性回归和批量梯度下降法代码实例
Jan 04 #Python
Python语言描述随机梯度下降法
Jan 04 #Python
微信小程序跳一跳游戏 python脚本跳一跳刷高分技巧
Jan 04 #Python
python使用xpath中遇到:到底是什么?
Jan 04 #Python
python使用itchat库实现微信机器人(好友聊天、群聊天)
Jan 04 #Python
python实现微信跳一跳辅助工具步骤详解
Jan 04 #Python
You might like
优化PHP代码技巧的小结
2013/06/02 PHP
php发送与接收流文件的方法
2015/02/11 PHP
php实现的网页版剪刀石头布游戏示例
2016/11/25 PHP
Laravel框架实现利用中间件进行操作日志记录功能
2018/06/06 PHP
权威JavaScript 中的内存泄露模式
2007/08/13 Javascript
js 使用form表单select类实现级联菜单效果
2012/12/19 Javascript
js通过元素class名字获取元素集合的具体实现
2014/01/06 Javascript
JavaScript实现DIV层拖动及动态增加新层的方法
2015/05/12 Javascript
Javascript函数的参数
2015/07/16 Javascript
jQuery幻灯片带缩略图轮播效果代码分享
2015/08/17 Javascript
Javascript DOM事件操作小结(监听鼠标点击、释放,悬停、离开等)
2017/01/20 Javascript
jQuery实现优雅的弹窗效果(6)
2017/02/08 Javascript
浅谈Angular4实现热加载开发旅程
2017/09/08 Javascript
Vue 实现双向绑定的四种方法
2018/03/16 Javascript
vue.js中ref及$refs的使用方法解析
2019/10/08 Javascript
使用python开发vim插件及心得分享
2014/11/04 Python
开始着手第一个Django项目
2015/07/15 Python
python去除文件中空格、Tab及回车的方法
2016/04/12 Python
Python单例模式的两种实现方法
2017/08/14 Python
Python+tkinter使用40行代码实现计算器功能
2018/01/30 Python
浅谈pytorch和Numpy的区别以及相互转换方法
2018/07/26 Python
详解Python传入参数的几种方法
2019/05/16 Python
如何使用django的MTV开发模式返回一个网页
2019/07/22 Python
使用pandas的box_plot去除异常值
2019/12/10 Python
matplotlib制作雷达图报错ValueError的实现
2021/01/05 Python
神经网络训练采用gpu设置的方式
2021/03/03 Python
TripAdvisor德国:全球领先的旅游网站
2017/12/07 全球购物
Skyscanner澳大利亚:全球领先的旅游搜索网站
2018/03/24 全球购物
华为慧通笔试题
2016/04/22 面试题
中学生在校期间的自我评价分享
2013/11/13 职场文书
应届大学毕业生找工作的求职信范文
2013/11/29 职场文书
信息技术课后反思
2014/04/27 职场文书
公司授权委托书范本
2014/09/18 职场文书
2015世界地球日活动总结
2015/02/09 职场文书
三八节活动主持词
2015/07/04 职场文书
Python中tqdm的使用和例子
2022/09/23 Python