2012-07-12 27 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; 
} 
相关问题