相关疑难解决方法(0)

如何在反应香蕉中实现游戏循环?

该问题特定于具有物理和视觉成分(例如,游戏)的反应性香蕉和实时模拟.

根据Fix Your Timestep!设置游戏循环的理想方式(假设物理需要可重复),你需要在帧之间固定的时间步长.在考虑了许多真正的并发症之后,作者到达了这个游戏循环:

double t = 0.0;
const double dt = 0.01;

double currentTime = hires_time_in_seconds();
double accumulator = 0.0;

State previous;
State current;

while ( !quit )
{
     double newTime = time();
     double frameTime = newTime - currentTime;
     if ( frameTime > 0.25 )
          frameTime = 0.25;   // note: max frame time to avoid spiral of death
     currentTime = newTime;

     accumulator += frameTime;

     while ( accumulator >= dt )
     {
          previousState = currentState;
          integrate( currentState, t, …
Run Code Online (Sandbox Code Playgroud)

haskell reactive-banana

20
推荐指数
1
解决办法
1586
查看次数

Reactive Banana的mapAccum功能如何运作?

我已经在Stack Overflow上查看了一些问题的答案,试图在使用Reactive Banana库时找到我的问题的解决方案.所有答案都使用了一些我不太了解的'mapAccum'的魔法.查看API文档,我发现的是"高效组合accumE和" accumB.这不是很有帮助.

似乎这个函数可以用来比较Behavior两个连续事件时a的值,这是我想要做的.但我不清楚如何做到这一点.

mapAccum工作究竟如何?

haskell reactive-banana

6
推荐指数
1
解决办法
494
查看次数

标签 统计

haskell ×2

reactive-banana ×2