2016-04-11 18 views
0

Oyunuma, oyunun tamamlanması gereken zamanın izlendiği bir mod eklemek istiyorum.Çoklu değişkenler ile oyun süresinin izlenmesi ve döngüler

Benim şu anki çözüm şudur: Ben oyunumu güncelleştirmenizde

int timerMilliseconds_= 0; 
int timerSeconds_ = 0; 
int timerMinutes_ = 0; 
int timerHours_ = 0; 

, ben şimdiki delta zaman timerMilliseconds_ artırmak ve güncelleme: Zamanın takip (çeşitli nedenlerle) dört değişkene sahip değerler. Şöyle gözükür:

timerMilliseconds_ += dt.asMilliseconds(); 

if (timerMilliseconds_ >= 1000) { 

    while (timerMilliseconds_ >= 1000) { 
    timerMilliseconds_ -= 1000; 
    timerSeconds_++; 
    } 

    while (timerSeconds_ >= 60) { 
    timerSeconds_ -= 60; 
    timerMinutes_++; 
    } 

    while (timerMinutes_ >= 60) { 
    timerMinutes_ -= 60; 
    timerHours_++; 
    } 

} 

Bu kod çalışıyor gibi görünüyor, ama bana göre ... garip görünüyor.

Döngüler anlamlı olur mu? Bunun üstesinden geliyor muyum?

Bu neredeyse codereview layık olduğunu biliyorum ama burada daha iyi bir cevap bulabileceğimi düşündüm! Teşekkür ederim!

+2

:
Yani aritmetik kullanabilirsiniz. 1 üye ve zaman dönüştürme fonksiyonu ile dakikalar/saniye/saatler için küçük bir sarmalayıcı yapmayı tercih ederim :) Her karede tüm dört değişkeni kullanmıyorsanız, – BlackCat

+1

BlackCat'ın yorumuna ekleme her çerçevede dört zaman biriminin tümünü kullanarak, her seferinde tamsayı bölme ve modulo ile dönüştürebilirsiniz - her birim için saymaktan farklı değil. – Jerry

cevap

4

Yinelenen çıkarmaların sayılması (tamsayı) bölümle eşdeğerdir; geriye kalan ise geriye kalanlardır. oyun zaman izleme için dört ayrı değişkenler tutmak Bence gayet garip görünüyor

timerSeconds = timerMilliseconds/1000; 
timerMilliseconds = timerMilliseconds % 1000; 
timerMinutes = timerSeconds/60; 
timerSeconds = timerSeconds % 60; 
timerHours = timerMinutes/60; 
timerMinutes = timerMinutes % 60;