the looks of funktion 我正在编写一个将动画显示为动画书的代码。
因此,此代码必须更改图像并同时移动坐标。我写了代码。但是有时动画会滞后。
我拍了一段动画视频,然后发现了问题所在。
在我的代码中,程序首先更改坐标,然后更改图片。 实际上,此代码几乎没有问题,但是有时会滞后,然后只会移动图片。一段时间后,它将改变图片。 因此,我想我必须使用某种可以更改图像并同时移动图像的功能。 有什么办法可以实现?
这是我的代码
import tkinter as tk
class App(object):
def GUI(self):
root=tk.Tk()
root.geometry("600x600")
self.pic001=tk.PhotoImage(file="picture001.png")
self.pic002=tk.PhotoImage(file="picture002.png")
self.canvas = tk.Canvas(bg="black", width=796, height=816)
self.canvas.place(x=0, y=0)
self.item=self.canvas.create_image(0, 0, image=self.pic001, anchor=tk.NW)
self.canvas.move(self.item,-51,10)
self.canvas.itemconfig(self.item, image = self.pic002)
root.mainloop()
app=App()
app.GUI()
答案 0 :(得分:0)
这是一个简单的动画脚本。
我绘制了6张图像,然后复制了5张图像以进行反向弹跳。
我每次都绘制一个新图像,而不是移动图像。
import tkinter as tk
from os import walk
class App(tk.Tk):
def __init__(self):
super().__init__()
self.geometry("600x300")
self.image_names = []
self.index_tracker = 0
self.location = 1
self.canvas = tk.Canvas(self, width=2000)
self.canvas.pack()
for(dirpath, dirnames, filenames) in walk('./Flip/'):
for name in filenames:
self.image_names.append(tk.PhotoImage(file="{}{}".format(dirpath, name)))
tk.Button(self, text='Start animation!', command=self.start_animation).pack()
def start_animation(self):
if self.location < 80:
self.canvas.delete('all')
if self.index_tracker < len(self.image_names):
self.canvas.create_image(self.location * 10, 75, image=self.image_names[self.index_tracker])
self.location += 1
self.index_tracker += 1
self.after(100, self.start_animation)
else:
self.index_tracker = 0
self.start_animation()
if __name__ == "__main__":
App().mainloop()
您可以在我的Github here上获取此动画的图像文件。
结果: