本文为python for kids中第12章的编程小测验第3题,实现了对gif图片的读取,以及对读取之后图像的移动,我使用了循环移动,如果不加干涉,图片将一直转圈移动下去,知道按下回车键,GAME_IS_NOT_OVER被触发了之后,tk对象被销毁,游戏结束。

import time
import math as m
from tkinter import *
GAME_IS_NOT_OVER = True
#创建一个Tk对象用来进行画图
#tkinter是一个GUI模板库
tk = Tk()
#创建一个canvas画布对象
canvas = Canvas(tk,width=400,height=400)
canvas.pack()
#通过PhotoImage来读取图片文件,注意tk中只能读取gif格式的图片
my_image = PhotoImage(file='./test.gif')
#通过create_image函数来创建canvas中的图片对象
img = canvas.create_image(0,0,anchor=NW,image=my_image)
directions = [(5,0),(0,5),(-5,0),(0,-5)]#将GAME_IS_NOT_OVER变量设为False让游戏结束
def set_game_over():global GAME_IS_NOT_OVERGAME_IS_NOT_OVER = Falsedef press_enter_to_quit(event):set_game_over()#将回车键和游戏结束函数进行绑定
canvas.bind_all('<KeyPress-Return>',press_enter_to_quit)while GAME_IS_NOT_OVER:for i in range(4):direction = directions[i]for _ in range(20):canvas.move(img,direction[0],direction[1])tk.update()time.sleep(0.05)if not GAME_IS_NOT_OVER:break
#销毁tk对象结束程序
tk.destroy()

效果如下:

使用tk模块实现照片的移动相关推荐

  1. Perl/Tk模块的安装终极教程(针对于NMAKE不好用的解决办法)

    因为组长最近要我们做一下LOG内容的可视化显示,前期提取LOG的时候一直用的是Perl语言进行开发,所以上网寻求更简单的数据可视化的方式,发现Perl脚本是那么的强大,从数据库到可视化再到进程控制,哈 ...

  2. python tk模块 小作业

    import tkinter as tk import tkinter.messagebox window=tk.Tk() window.title('简单控制系统') window.geometry ...

  3. python成语游戏代码_用python的TK模块实现猜成语游戏(附源码)

    1 classGameWindow(object):2 """创建游戏运行窗口并加载相关的控件""" 3 4 def __init__(se ...

  4. 基于python 使用tk模块和mysql实现学生信息管理系统

    学生信息管理系统 好久没有发文啦,经过一段时间的学习,有所收获,写了个小项目,记录一下学习过程.好啦,废话不多说,我们直接说实现,看效果. 首先系统是有三个视图,一个管理员,一个教师,一个学生,运行效 ...

  5. python批量识别图中文字自动命名_python实现批量命名照片

    python批量命名照片的具体代码,供大家参考,具体内容如下 废话不多说,上效果图 全部代码 from tkinter import * import os #添加文件夹路径 def rename() ...

  6. [转载] windows下Python2.7 的 pyOpenGL模块安装

    参考链接: 使用PyGame和PyOpenGL的Python中的高级OpenGL 综合整理的,内容都不知道转手多少次了. 下载Python 下载opengl在python中的插件库pyopengl h ...

  7. Perl/Tk入门学习(上)

    由于项目需求,要编写程序的GUI界面,脚本程序使用Perl,因此选用Perl/Tk模块来实现GUI.初次接触Perl/Tk模块,自我摸索过程中,欢迎大家交流与指正. 目标:编写一个程序的使用界面,具体 ...

  8. windows下Python2.7 的 pyOpenGL模块安装

    由于自己的创新项目中需要用OpenGL完成一些材质的模拟效果,于是看了一些关于OpenGL的材料,加之最近比较喜欢Python这个语言,于是准备在Python中写点OpenGL的东西. 自己在装的时候 ...

  9. perl/tk_Perl / Tk的基础

    IBM®AIX®操作系统管理员和开发人员通常使用Perl语言,几乎在每个成功的网站和大多数AIX系统上都可以找到它. 尽管Perl脚本功能强大,但它们产生的Web界面缺少图形化前端,并且用户必须键入信 ...

最新文章

  1. php简单算法之冒泡排序
  2. 第三次作业---读《构造之法》1-5章有感
  3. CentOS+Nginx+Tomcat+Mysql+PHP 环境搭建及系统部署
  4. CSP认证201604-3 路径解析[C++题解]:字符串处理、模拟、vector切分字符串
  5. 【Mysql】_1在centos7虚拟机上完成Mysql环境部署
  6. 1.4 @SuppressWarnings:抑制编译器警告
  7. ffmpeg sws_scale函数详解
  8. android 跑分,2018年10月国内Android手机安兔兔跑分性能排行榜
  9. 【操作系统】实验四 主存空间的分配和回收
  10. 社团挖掘算法——BGLL算法
  11. 我是如何自学C语言的(一个菜鸟的学习路)
  12. Node.js连接数据库
  13. React.js引入阿里icon解决icon显示为小方框问题
  14. 单因素方差分析 OR 重复测量方差分析
  15. 基于深度强化学习构建量化投资策略
  16. (五十二)剑网三大风车伤害计算器
  17. css 让图标上下跳,使用CSS和Bootstrap图标制作上下跳动的指示箭头动画效果
  18. 在中国做量化交易一天的工作内容
  19. Java项目开发,学生信息管理系统
  20. C语言控制流编程试题,可编程序控制系统设计师(中级)职业认证理论考试试题(含答案).doc...

热门文章

  1. php年金计算函数,年金计算(一)
  2. 我想成为坐在路边鼓掌的人(转载)
  3. R语言Rcpp包编写矩阵/向量相乘
  4. oracle数据库连接加密,oracle 数据库加加密。
  5. 4G 尚未普及,5G 就要来了?韩国公司或为首个5G运营商
  6. optimization_pass.cc:185] None of the MLIR Optimization Passes are enabled (registered 2)解决办法
  7. 如何使用XGBoost进行时间序列预测
  8. ecshop 中添加限时抢购功能(倒计时)
  9. JS 复制内容到剪贴板
  10. 绝地求生模拟登陆!高难度JS解密教程,Python高级爬虫开发,