首页 > 代码库 > 8_游戏循环

8_游戏循环

```while (true){  Event* event = waitForEvent();  dispatchEvent(event);}while (true){  processInput();  update();  render();}```游戏循环在游戏运行期间一直执行,每次循环,会处理用户输入,更新游戏状态,渲染场景等. 记录循环时间,来控制游戏的节奏(rate).```\\ 锁定帧率while (true){  double start = getCurrentTime();  processInput();  update();  render();  sleep(start + MS_PER_FRAME - getCurrentTime());}\\ elapsed, 帧率不固定, 但是游戏使用时间差来进行更新\\ 不同的帧率下,物理运动结果是一样的double lastTime = getCurrentTime();while (true){  double current = getCurrentTime();  double elapsed = current - lastTime;  processInput();  update(elapsed);  render();  lastTime = current;}``````\\ 定时执行(每隔多少毫秒执行一次),更有效率的模拟物理 ai 等等double previous = getCurrentTime();double lag = 0.0;while (true){  double current = getCurrentTime();  double elapsed = current - previous;  previous = current;  lag += elapsed;  processInput();  while (lag >= MS_PER_UPDATE)  {    update();    lag -= MS_PER_UPDATE;  }  render();  // 防止物体跳动  render(lag/MS_PER_UPDATE);}```### power consumption1 帧率尽量的高. 会带来更好的体验,也会跟耗电, 发热更多2 限制帧率.  带来足够好的体验,并且降低电量消耗

 

8_游戏循环