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 help()函数用法详解
Mar 11 Python
以Python的Pyspider为例剖析搜索引擎的网络爬虫实现方法
Mar 30 Python
用Python编写脚本使IE实现代理上网的教程
Apr 23 Python
Python闭包实现计数器的方法
May 05 Python
python利用正则表达式排除集合中字符的功能示例
Oct 10 Python
python编写朴素贝叶斯用于文本分类
Dec 21 Python
python 3.7.0 安装配置方法图文教程
Aug 27 Python
Python Django 实现简单注册功能过程详解
Jul 29 Python
python使用beautifulsoup4爬取酷狗音乐代码实例
Dec 04 Python
Django media static外部访问Django中的图片设置教程
Apr 07 Python
10款最佳Python开发工具推荐,每一款都是神器
Oct 15 Python
Python3自带工具2to3.py 转换 Python2.x 代码到Python3的操作
Mar 03 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
人族 TERRAN 概述
2020/03/14 星际争霸
php错误提示failed to open stream: HTTP request failed!的完美解决方法
2011/06/06 PHP
计算php页面运行时间的函数介绍
2013/07/01 PHP
一个简单的php MVC留言本实例代码(必看篇)
2016/09/22 PHP
THINKPHP在添加数据的时候获取主键id的值方法
2017/04/03 PHP
php中通用的excel导出方法实例
2017/12/30 PHP
javascript innerHTML使用分析
2010/12/03 Javascript
js的flv视频播放器插件使用方法
2015/06/23 Javascript
AngularJS页面访问时出现页面闪烁问题的解决
2016/03/06 Javascript
JS两种类型的表单提交方法实例分析
2016/11/28 Javascript
微信小程序 配置文件详细介绍
2016/12/14 Javascript
详解在Angularjs中ui-sref和$state.go如何传递参数
2017/04/24 Javascript
Iscrool下拉刷新功能实现方法(推荐)
2017/06/26 Javascript
解决使用Vue.js显示数据的时,页面闪现原始代码的问题
2018/02/11 Javascript
微信小程序视图容器(swiper)组件创建轮播图
2020/06/19 Javascript
Vue基本使用之对象提供的属性功能
2019/04/30 Javascript
node 文件上传接口的转发的实现
2019/09/23 Javascript
[37:45]2014 DOTA2国际邀请赛中国区预选赛5.21 DT VS Orenda
2014/05/22 DOTA
python中map、any、all函数用法分析
2015/04/21 Python
Python简单进程锁代码实例
2015/04/27 Python
详解Swift中属性的声明与作用
2016/06/30 Python
详解python的webrtc库实现语音端点检测
2017/05/31 Python
python删除服务器文件代码示例
2018/02/09 Python
Python 实现数据结构中的的栈队列
2019/05/16 Python
Python+opencv 实现图片文字的分割的方法示例
2019/07/04 Python
Django+python服务器部署与环境部署教程详解
2020/03/30 Python
CSS3教程(7):CSS3嵌入字体
2009/04/02 HTML / CSS
Kneipp克奈圃美国官网:德国百年精油配方的传承
2018/02/07 全球购物
Hello Molly美国:女性时尚在线
2019/08/26 全球购物
Linux机考试题
2015/10/16 面试题
优秀驾驶员先进事迹材料
2014/05/04 职场文书
2014年司机工作总结
2014/11/21 职场文书
2015年党风建设工作总结
2015/04/29 职场文书
《假如》教学反思
2016/02/17 职场文书
读《钢铁是怎样炼成的》有感:百炼方成钢
2019/11/05 职场文书
Redis源码阅读:Redis字符串SDS详解
2021/07/15 Redis