伪代码中的这个 while(simulating) 是用 while(check_during_simulation()) 来实现吗,如果是的话,在循环里无法判断 during_animation 的变化,就出不来了。
有没有哪位 uu 知道该怎么办
只有一层 while 循环啊,这个伪代码的意思是当在模拟时,函数里面不用管
这段伪代码是将模拟的逻辑从渲染循环中抽离出来并且大幅度简化的结果,实际上你写的所有代码都在这个循环内,你的代码既不需要判断是否处于模拟状态,也不负责进入或退出循环。
下面给出实际的调用链,感兴趣的话可以自己看看源代码。
Platform::eventloop
中包含真正的循环以及 swap buffer 操作Controller::render
设定了实时渲染相机参数Scene::render
结合一个小状态机判定是否处于模拟过程中并调用更新操作Scene::simulation_update
进行更新,大致相当于伪代码中的循环体