2015-08-28 28 views
3

我正在使用sf::Clock來控制一個循環。我可以有超過1個sf :: Clock實例嗎? (sf :: Clock如何工作?)

我想知道我是否允許使用超過1 sf::Clock,如果我這樣做,是否所有的「時鐘」會又乖又按預期方式工作在所有操作系統上

例如:

sf::Clock c1; 
sf::Clock c2; 

while(1) 
{ 
    std::cout << c1.getElapsedTime().asSeconds() << ", " << c2.restart().asSeconds() << std::endl; 
} 

還是會有些意外的行爲的結果?

在Linux上,這似乎工作,具有以下的輸出:

4e-06, 1e-06 
2.00026, 2.00025 
4.00039, 2.00014 
6.00053, 2.00014 
8.00066, 2.00013 
10.0008, 2.00011 

我不能在Mac OS X或Windows測試此然而。 (只是因爲它在我寫的測試程序中工作並不意味着它可以用於任何時鐘,我的例子只是證明它可以用於2.)

有關如何實現sf::Clock的任何信息將在這裏很有用。

+1

沒有什麼能阻止你創建儘可能多的'sf :: Clock's,只要你喜歡。它實際上只是Windows上的['QueryPerformanceCounter'](https://msdn.microsoft.com/en-us/library/windows/desktop/ms644904%28v=vs.85%29.aspx) ''mach_absolute_time'](https://developer.apple.com/library/mac/qa/qa1398/_index.html)在Mac上,['clock_gettime'](http://linux.die.net/man/3/clock_gettime)在Posix兼容的操作系統上。 –

+0

@SeanCline如果您將此添加爲答案,我會接受它。 – user3728501

回答

1

這非常好,您可以擁有儘可能多的實例。對此沒有限制。