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之hello world
May 21 Python
Python中逗号的三种作用实例分析
Jun 08 Python
Python实现删除文件但保留指定文件
Jun 21 Python
Python常用的爬虫技巧总结
Mar 28 Python
Python 使用Numpy对矩阵进行转置的方法
Jan 28 Python
Python爬取数据保存为Json格式的代码示例
Apr 09 Python
200行python代码实现2048游戏
Jul 17 Python
python根据多个文件名批量查找文件
Aug 13 Python
centos7中安装python3.6.4的教程
Dec 11 Python
Python中求对数方法总结
Mar 10 Python
python mongo 向数据中的数组类型新增数据操作
Dec 05 Python
用Python爬取英雄联盟的皮肤详细示例
Dec 06 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
中东人咖啡哲学
2021/03/03 咖啡文化
第二节 对象模型 [2]
2006/10/09 PHP
PHP常用的文件操作函数经典收藏
2013/04/02 PHP
win7系统配置php+Apache+mysql环境的方法
2015/08/21 PHP
详解PHP+AJAX无刷新分页实现方法
2015/11/03 PHP
Yii 框架使用数据库(databases)的方法示例
2020/05/19 PHP
Javascript技术技巧大全(五)
2007/01/22 Javascript
JavaScript window.setTimeout() 的详细用法
2009/11/04 Javascript
jquery 经典动画菜单效果代码
2010/01/26 Javascript
js onload处理html页面加载之后的事件
2013/10/30 Javascript
JavaScript中for-in遍历方式示例介绍
2014/02/11 Javascript
js实现随屏幕滚动的带缓冲效果的右下角广告代码
2015/09/04 Javascript
解析预加载显示图片艺术
2016/12/05 Javascript
JavaScript hasOwnProperty() 函数实例详解
2017/08/04 Javascript
JavaScript实现创建自定义对象的常用方式总结
2018/07/09 Javascript
微信小程序蓝牙连接小票打印机实例代码详解
2019/06/03 Javascript
layui富文本编辑器前端无法取值的解决方法
2019/09/18 Javascript
Python httplib模块使用实例
2015/04/11 Python
python 判断是否为正小数和正整数的实例
2017/07/23 Python
运动检测ViBe算法python实现代码
2018/01/09 Python
python实现Adapter模式实例代码
2018/02/09 Python
python中正则表达式的使用方法
2018/02/25 Python
python实现名片管理系统
2018/11/29 Python
python 梯度法求解函数极值的实例
2019/07/10 Python
ubuntu上安装python的实例方法
2019/09/30 Python
python 下划线的不同用法
2020/10/24 Python
CSS3五个技巧给你的网站带来出色的效果
2009/04/02 HTML / CSS
css3实现一款模仿iphone样式的注册表单
2013/03/20 HTML / CSS
新法人代表任命书
2014/06/06 职场文书
优秀毕业生找工作自荐信
2014/06/23 职场文书
2015年党员自我剖析材料
2014/12/17 职场文书
八月迷情观后感
2015/06/11 职场文书
小学生读书笔记
2015/07/01 职场文书
2015年七夕情人节感言
2015/08/03 职场文书
导游词之崇武古城
2019/10/07 职场文书
python使用BeautifulSoup 解析HTML
2022/04/24 Python