【发布时间】:2015-04-13 15:57:29
【问题描述】:
我的代码一定是犯了一些愚蠢的错误,在我的脑海中这应该可以工作,但是计时器工作得太快了(我想在几秒钟内获得剩余时间)。
我的代码:
timeElapsed = 0;
timeLeft = 60;
//delta = time it took to get through one frame (60 fps).
timeElapsed += delta/getFramesPerSecond(); //FPS = 60f
timeLeft -= timeElapsed; //timeLeft starts at 60 (seconds)
timeDisplay = "Time left: " + timeLeft;
我检查了 FPS 始终为 60,我在这里缺少什么?
Delta 样本打印:
0.016969847
0.017038532
0.017123796
0.017026689
0.016969848
0.017059453
0.01697774
0.016987609
0.017073665
0.017035767
0.01708432
【问题讨论】:
-
可能的整数除法给
0这将使 timeLeft 总是有 60 -
对不起,我应该指定所有变量都是浮点数
-
对所示示例尚无定论。
timeElapse、timeLeft和delta的原始值是多少?timeDisplay是打印出来还是应该更改 UI 上的标签?你试过调试吗? -
@gtgaxiola 我添加了信息:) 时间正在按预期打印
-
从收集到的信息来看,delta 似乎计算为零。