gpt4 book ai didi

python - 在 Tkinter 中使用 Spritesheet

转载 作者:太空狗 更新时间:2023-10-30 00:03:20 25 4
gpt4 key购买 nike

我正在用 Python 的 Tkinter 编写 GUI,但我找不到如何使用 Canvas 的 create_image 方法从 spritesheet 中仅绘制一个 sprite。在此先感谢任何可以告诉我为此需要做什么的人!

最佳答案

首先,我强烈推荐你使用 Pygame,因为它有一个 concrete module为此,PhotoImage 类需要保留对每个图像的引用以避免被垃圾收集(这有时有点棘手)。

话虽如此,这是一个如何使用 Tkinter 绘制单个 Sprite 的示例(我用于此示例的 Sprite 表是 this one,已转换为 GIF 文件)。

import Tkinter as tk

class App(tk.Tk):
def __init__(self):
tk.Tk.__init__(self)
self.spritesheet = tk.PhotoImage(file="spritesheet.gif")
self.num_sprintes = 4
self.last_img = None
self.images = [self.subimage(32*i, 0, 32*(i+1), 48) for i in range(self.num_sprintes)]
self.canvas = tk.Canvas(self, width=100, height=100)
self.canvas.pack()
self.updateimage(0)

def subimage(self, l, t, r, b):
print(l,t,r,b)
dst = tk.PhotoImage()
dst.tk.call(dst, 'copy', self.spritesheet, '-from', l, t, r, b, '-to', 0, 0)
return dst

def updateimage(self, sprite):
self.canvas.delete(self.last_img)
self.last_img = self.canvas.create_image(16, 24, image=self.images[sprite])
self.after(100, self.updateimage, (sprite+1) % self.num_sprintes)

app = App()
app.mainloop()

关于python - 在 Tkinter 中使用 Spritesheet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16579674/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com