使用多个变量和 while 循环跟踪播放时间
Keeping track of play time with multiple variables and while loops
我想在我的游戏中添加一种模式,可以跟踪玩家完成游戏所需的时间。
我目前的解决方案是:我有四个变量(出于各种原因)跟踪时间:
int timerMilliseconds_= 0;
int timerSeconds_ = 0;
int timerMinutes_ = 0;
int timerHours_ = 0;
每当我更新游戏时,我都会将 timerMilliseconds_
增加当前增量时间并更新值。它看起来像这样:
timerMilliseconds_ += dt.asMilliseconds();
if (timerMilliseconds_ >= 1000) {
while (timerMilliseconds_ >= 1000) {
timerMilliseconds_ -= 1000;
timerSeconds_++;
}
while (timerSeconds_ >= 60) {
timerSeconds_ -= 60;
timerMinutes_++;
}
while (timerMinutes_ >= 60) {
timerMinutes_ -= 60;
timerHours_++;
}
}
此代码似乎有效,但对我来说它看起来有点……奇怪……。
这些 while 循环有意义吗?我是不是设计过度了?
我知道这几乎值得进行代码审查,但我想我可以在这里得到更好的答案!谢谢!
计算重复的减法相当于(整数)除法;剩下的就是余数。
所以你可以使用算术:
timerSeconds = timerMilliseconds / 1000;
timerMilliseconds = timerMilliseconds % 1000;
timerMinutes = timerSeconds / 60;
timerSeconds = timerSeconds % 60;
timerHours = timerMinutes / 60;
timerMinutes = timerMinutes % 60;
我想在我的游戏中添加一种模式,可以跟踪玩家完成游戏所需的时间。
我目前的解决方案是:我有四个变量(出于各种原因)跟踪时间:
int timerMilliseconds_= 0;
int timerSeconds_ = 0;
int timerMinutes_ = 0;
int timerHours_ = 0;
每当我更新游戏时,我都会将 timerMilliseconds_
增加当前增量时间并更新值。它看起来像这样:
timerMilliseconds_ += dt.asMilliseconds();
if (timerMilliseconds_ >= 1000) {
while (timerMilliseconds_ >= 1000) {
timerMilliseconds_ -= 1000;
timerSeconds_++;
}
while (timerSeconds_ >= 60) {
timerSeconds_ -= 60;
timerMinutes_++;
}
while (timerMinutes_ >= 60) {
timerMinutes_ -= 60;
timerHours_++;
}
}
此代码似乎有效,但对我来说它看起来有点……奇怪……。
这些 while 循环有意义吗?我是不是设计过度了?
我知道这几乎值得进行代码审查,但我想我可以在这里得到更好的答案!谢谢!
计算重复的减法相当于(整数)除法;剩下的就是余数。
所以你可以使用算术:
timerSeconds = timerMilliseconds / 1000;
timerMilliseconds = timerMilliseconds % 1000;
timerMinutes = timerSeconds / 60;
timerSeconds = timerSeconds % 60;
timerHours = timerMinutes / 60;
timerMinutes = timerMinutes % 60;