使用signal_timeout进行更新功能

时间:2014-11-04 23:42:58

标签: gtk sfml gtkmm

我打算用gtkmm来开发游戏。我将使用SFML(我找到了一种在线制作SFML小部件的方法)。

游戏需要有一个“更新”功能,可以更新世界状态 - 物理,输入处理等等。关键是,gtk主循环阻塞 - 我无法覆盖它。但我可以连接一个定时器信号(使用signal_timeout)并将其设置为每0毫秒重复一次,具有最高优先级 - 这适用于我的Update方法。 这就是我所说的:https://developer.gnome.org/glibmm/stable/classGlib_1_1SignalTimeout.html

这是一种可以接受的方法吗?还有其他更好的办法?或者不是gtk应该像这样使用?

我想到的另一种方法是使用一个单独的线程来运行Update函数。但后来我需要使用互斥锁来同步线程,这会增加开销,并可能增加不必要的复杂性。

0 个答案:

没有答案