2012-07-12 61 views
3

我正在學習Linux(Ubuntu 12.04)環境中的Vala和GTK3。爲此,我寫了一個生命遊戲模擬。到現在爲止還挺好。我想要做的是在每個屏幕更新之間插入延遲(例如2秒)。我調查了Glib.TimeoutSource函數,它似乎過分詳細,以滿足我的需求。還有其他選擇嗎?如果TimeoutSource確實是要走的路,那麼您是否可以推薦任何示例。 謝謝。使用Val和GTK3在屏幕更新之間插入延遲

邁克

更新:它原來是可笑容易...

public void onRunButtonClicked(Button source) 
{ 
    Timeout.add_seconds(3, updateDraw); 
} 

private bool updateDraw() 
{ 
    game.determineBirthsAndDeaths(); 
    game.applyBirthsAndDeaths(); 
    queue_draw(); 
    iterationsLabel.set_text("Iteration: %5d".printf(game.getIterationCount()));  
    return true; 
} 

第一種方法設置定時器。第二個每三秒執行一次(在本例中)。現在我必須添加一個停止按鈕,並讓我的updateDraw方法在按下停止按鈕時返回false。更多學習...

+4

我認爲你應該自己寫和接受一個答案,讓人們知道你的問題已解決。 – Ancurio 2012-08-08 07:32:20

回答

0
public void onRunButtonClicked(Button source) 
{ 
    Timeout.add_seconds(3, updateDraw); 
} 

private bool updateDraw() 
{ 
    game.determineBirthsAndDeaths(); 
    game.applyBirthsAndDeaths(); 
    queue_draw(); 
    iterationsLabel.set_text("Iteration: %5d".printf(game.getIterationCount()));  
    return true; 
}