我想使用 python3 和 tkinter 创建一个虚拟宠物风格的游戏。到目前为止,我有主窗口并开始放入标签,但我遇到的问题是播放动画 gif。我在这里搜索并找到了一些答案,但他们不断抛出错误。我找到的结果是使用 PhotoImage 的 gif 的索引位置在一定范围内继续。
# Loop through the index of the animated gif
frame2 = [PhotoImage(file='images/ball-1.gif', format = 'gif -index %i' %i) for i in range(100)]
def update(ind):
frame = frame2[ind]
ind += 1
img.configure(image=frame)
ms.after(100, update, ind)
img = Label(ms)
img.place(x=250, y=250, anchor="center")
ms.after(0, update, 0)
ms.mainloop()
当我在终端中使用“pyhton3 main.py”运行它时,出现以下错误:
_tkinter.TclError:该索引没有图像数据
我忽略或完全遗漏了什么?
这是查看完整项目的 GitHub 存储库的链接: VirtPet_Python
提前致谢!
原文由 nmoore146 发布,翻译遵循 CC BY-SA 4.0 许可协议
该错误意味着您尝试加载 100 帧,但 gif 少于此。
tkinter 中的动画 gif 是出了名的糟糕。我很久以前写了这段代码,你可以从中窃取,但除了小 gif 之外,其他任何东西都会变得迟钝: