2009-09-02 39 views

Trả lời

3

Đo thời gian đã trôi qua và đếm số khung. Chia từng cái một để cung cấp tốc độ khung hình.

Khi thời gian trôi qua đạt đến một giây hoặc lâu hơn nếu bạn muốn tính trung bình trong một khoảng thời gian dài hơn, hãy đặt lại cả số lượng và bắt đầu lại.

+0

Nếu tôi đang sử dụng glut và tôi thực hiện cuộc gọi này glutIdleFunc (oneFrame); Tôi giả định rằng oneFrame sẽ được gọi là mỗi khung hình là chính xác? – Mike2012

+0

Tôi tin như vậy nhưng tôi không quen thuộc với glut – jcoder

5

Gắn bộ hẹn giờ vào đầu vòng lặp chính của bạn và kiểm tra xem phải mất bao lâu để quay lại đó.

Dưới cửa sổ bạn sẽ làm điều gì đó như:

double oldTime = 0.0. 
while(!exit) 
{ 
    __int64 counter; 
    QueryPerformanceCounter((LARGE_INTEGER*)&counter); 

    __int64 frequency; 
    QueryPerformanceFrequency((LARGE_INTEGER*)&frequency); 

    double newTime  = (double)counter/(double)frequency; 
    double frameRate = 1.0/(newTime - oldTime); 
    oldTime   = newTime; 

    // Rest of your game loop goes here.  
} 
+1

Những gì tôi nói chỉ với mã thực tế để +1 (Mặc dù nó giả định cửa sổ ...) – jcoder

+0

Không phải là ông đã đề cập đến nền tảng hoặc ngôn ngữ ... thời gian đoán;) – Goz

Các vấn đề liên quan