2011-09-18 66 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