我正在Python的Tkinter中編寫一個GUI,我無法找到如何使用畫布的create_image方法僅從spritesheet繪製單個精靈。在此先感謝任何能告訴我我需要爲此做什麼的人!在Tkinter中使用Spritesheets
4
A
回答
3
首先,我強烈建議您使用Pygame,因爲它具有concrete module用於此目的,並且PhotoImage類需要保留對每個圖像的引用以避免垃圾收集(有時有點棘手) 。
話雖如此,這是一個如何與Tkinter繪製單個精靈的示例(我用於此示例的spritesheet是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()
0
您有幾種選擇在這裏:
Tkinter的只支持3種文件格式:GIF,PGM和PPM。 您需要將文件轉換爲.GIF,然後加載它們或您可以使用Python影像庫(PIL)及其tkinter擴展來使用PNG圖像。
你可以在這裏下載PIL包: http://www.pythonware.com/products/pil/
另外,如上所述,pygame的具有更好的內置支持圖片,並且可以更容易使用。
祝你好運!
相關問題
- 1. 使用EaselJS優化HTML中的Spritesheets
- 2. SVG&Spritesheets
- 3. AS3 /閃存性能Spritesheets/Starling
- 4. 來自TexturePacker的EaselJS Spritesheets
- 5. 在tkinter中使用sys.stdout.write(「\ r ...」)
- 6. 在Jupyter Notebook中使用Tkinter
- 7. 在Python中使用tkinter庫
- 8. 在tkinter中使用.get()ScrolledFrame
- 9. 緩存和渲染spritesheets不起作用
- 10. 理想的LWJGL/OpenGL的Spritesheets數量
- 11. 使用Tkinter的
- 12. 在Python中使用grid_propagate(False)Tkinter
- 13. 在tkinter中使用optionmenu(蟒3.3)
- 14. 如何在tkinter中使用圖像
- 15. 在python3中使用tkinter的子幀
- 16. Tkinter;在畫布中使用滾動條
- 17. 如何在Linux中使用python 3 tkinter?
- 18. 使用Python在Tkinter中保存異常
- 19. 在tkinter中使用tkk的checkbutton顏色?
- 20. 在tkinter GUI中使用多個窗口
- 21. 在PIL/TKinter中使用繪圖
- 22. 在Tkinter中使用pygame功能
- 23. 在python中使用tkinter的圖形圖
- 24. 在TKinter中使用RGB值?例如。 255,0,0
- 25. 在Tkinter中使用os路徑PhotoImage
- 26. 如何在tkinter中使用作品
- 27. 在python中使用tkinter來製作gui
- 28. 使用Tkinter和suprocess.call
- 29. 使用tkinter的GUI
- 30. 使用Tkinter繪圖
有一個處理spritesheets @ pygame的示例:http://www.pygame.org/wiki/Spritesheet。與Canvas.create_image一起使用它不應該很費力。 –