2011-09-18 68 views
0

我在Python 2.7和PyGTK 2.24中有一個項目。我正在使用以下代碼在gtk.Fixed中創建一個gtk.Image的動畫動畫。Motion Animation

def fishmove(): 
     global fishmove 
     if fishmove < 640: 
      fishmove = fishmove + 10 
      fixed_hab.move(fish1, fishmove, 50) 

    gobject.timeout_add(1, fishmove) 

但是,雖然程序出現時沒有拋出任何錯誤,但圖像不會移動。到底是怎麼回事?

BTW,fishmove開始爲0

回答

1

我解決了它。我只需要在函數的末尾添加「return True」行。這是固定的代碼。有用。

def fishmove(): 
    global fishmove 
    if fishmove < 640: 
     fishmove = fishmove + 10 
     fixed_hab.move(fish1, fishmove, 50) 
     return True 

gobject.timeout_add(1, fishmove) 
2

,請注意變量的命名!如果你有一個全局整數fishmove和一個同名的方法,這兩個幾乎肯定會以某種意想不到的方式干涉!

嘗試將方法重命名爲move_fish或某物。

+0

謝謝,我敢肯定,這將有助於一些,但動畫仍然沒有運行。 :( – CodeMouse92

+0

也許問題是超時時間以毫秒爲單位?這將在64 ms後完成動畫...所以它很可能是因爲它非常快,你只是不覺得動畫。試試'gobject.timeout_add(50 ,fish_move)'並且玩弄第一個參數 –

+0

不,它明顯地停留在它開始的相同的地方。絕對沒有移動 – CodeMouse92