2014-10-20 131 views
0

我使用Tkinter的畫布在Python中創建一個遊戲,我需要旋轉在遊戲中的精靈,我一直在使用嘗試PI​​L的 'image'.rotate() 然而質量的損失遠遠過高,在它開始嚴重滯後之前,不會執行超過20次轉換。這可以修復嗎?除了手工製作100張圖像之外,還有其他選擇嗎? 這裏是我的代碼:旋轉圖像遊戲

shipPIL = shipPIL.rotate(math.degrees(increment), expand=True) 
shipTex = ImageTk.PhotoImage(shipPIL) 
canvas.itemconfig(self.object, image=shipTex) 

增量= PI/20

+0

tkinter並不是真正意義上的這個......嘗試類似pygame或libtcod或者其他設計圍繞遊戲開始的東西 – 2014-10-20 18:12:19

回答

3

你真的應該在原始圖像保存爲一個乾淨的副本,並旋轉它從原來的每次開機。根據你在做什麼,將各種旋轉緩存在某個地方而不是每次計算它都是一個好主意。

編輯:和TKinter是GUI應用程序,而不是遊戲。我推薦Pygame。

+0

要詳細瞭解爲什麼這樣做會失敗:每次旋轉圖像時,都會丟失信息,因爲舊像素和新像素之間沒有1-1映射。當您重複旋轉相同的圖像時,錯誤加起來很快。 – user3757614 2014-10-20 22:41:09

+0

這使得很多道理,我不知道爲什麼我沒有想到從原來的旋轉它,謝謝。另外,我已經計劃完成與Tkinter一起工作的所有事情,並且對Pygame沒有經驗,並且由於我的計劃正在接受評估,我認爲我現在會堅持下去,將來我會使用Pygame不要擔心:) – Eykar 2014-10-21 13:23:48

+0

完美的作品,謝謝 – Eykar 2014-10-22 01:03:40