我看到了一个关于如何像蛇游戏一样移动立方体的视频。
嗨,在这个视频( https://www.youtube.com/watch?v=aT2zNLSFQEk&list=PLLH3mUGkfFCVNs51eK8ftCAlI3hZQ95tC&index=11 )中,他声明浮点数**lastMove **没有值(默认为零),并在条件和**减号**与Time.time一起使用它,然后将它分配给**lastMove *。我的问题是,当没有价值时,lastMove在条件下的作用是什么?如果我把它从"if语句“中清除,游戏就会运行得很快,但是如果停留在"if语句”中,时间就会慢得多。
发布于 2022-03-24 08:36:34
他所做的就是不断检查time - lastMove是否大于给定的预定义区间(timeInBetweenMoves)。lastMove固定时,每个帧的时间都在增加。因此,在某个时候,这个条件将是正确的。如果是的话,他用时间的值更新lastMove,使其“重置循环”=,使减差再次低于间隔。
这样做的目的是只在一个固定的间隔(0.25秒),而不是每帧移动。如下所示:
interval = 0.25 (timeBetweenMoves)
time (secs) | lastMove | time - lastMove
-----------------------------------------
0.00 | 0 | 0
0.05 | 0 | 0.05
0.10 | 0 | 0.10
0.15 | 0 | 0.15
0.20 | 0 | 0.20
0.25 | 0 | 0.25
0.30 | 0 | 0.30 ---> bigger than interval: MOVE and set lastMove to this (0.30)
0.35 | 0.30 | 0.5
0.40 | 0.30 | 0.10
0.45 | 0.30 | 0.15
0.50 | 0.30 | 0.20
0.55 | 0.30 | 0.25
0.60 | 0.30 | 0.30 ---> bigger than interval: MOVE and set lastMove to time (0.60)
0.65 | 0.60 | 0.5
0.70 | 0.60 | 0.10
...这有点节流。
https://stackoverflow.com/questions/71598979
复制相似问题