Beispiel #1
0
void update()
{
    //rough fps handling
    frame++;
    t4 = std::chrono::high_resolution_clock::now();

    int ret = std::chrono::duration_cast< std::chrono::duration<float> >(t4-t3).count();

    if(ret >= 1)
    {
        simConfig.lastFPS = frame;
        frame = 0;
        t3 = std::chrono::high_resolution_clock::now();
    }

    if(frame % 3 == 0 || frame != 0)
    {
        //time passed gets calculated
        float dt = getDT() * timeRate;

        //if we just exited a pause, just make the dt zero so no jerking when unpausing
        if(recentlyPaused)
        {
            dt = 0;
            recentlyPaused = false;
        }

        simEntities.tick(dt);

        simConfig.tick(dt);
    }

    // Update the state of the scene
    glutPostRedisplay();//call the display callback
}
Beispiel #2
0
void update()
{
    float dt = getDT() * simConfig.timeRate;

    //rough fps handling
    frame++;
    t4 = std::chrono::high_resolution_clock::now();

    int ret = std::chrono::duration_cast< std::chrono::duration<float> >(t4-t3).count();

    //if we're paused, throw out dt
    if(recentlyPaused)
        dt = 0;

    //tick the entity manager
    simEntities.tick(dt);

    if(ret >= 1)
    {
        simConfig.lastFPS = frame;
        frame = 0;
        t3 = std::chrono::high_resolution_clock::now();

        //TICK THAT SEXY RENDERER SO IT REBUILDS THE DYNAMIC INTERFACE
        simRenderer.tick();
    }

    simConfig.tick(dt);

    //perform spam key options here
    keyboard();

    //lower the key spam counts
    double rate = 0.05;
    if(consecutivePresses[0]>0)
        consecutivePresses[0]-=rate;
    if(consecutivePresses[1]>0)
        consecutivePresses[1]-=rate;
    if(consecutivePresses[2]>0)
        consecutivePresses[2]-=rate;
    if(consecutivePresses[3]>0)
        consecutivePresses[3]-=rate;

    if(consecutivePresses[4]>0)
        consecutivePresses[4]-=rate;
    if(consecutivePresses[5]>0)
        consecutivePresses[5]-=rate;
    if(consecutivePresses[6]>0)
        consecutivePresses[6]-=rate;
    if(consecutivePresses[7]>0)
        consecutivePresses[7]-=rate;

    //cap how fast it may get
    double cap = 0.1;
    if(consecutivePresses[0]>cap)
        consecutivePresses[0]=cap;
    if(consecutivePresses[1]>cap)
        consecutivePresses[1]=cap;
    if(consecutivePresses[2]>cap)
        consecutivePresses[2]=cap;
    if(consecutivePresses[3]>cap)
        consecutivePresses[3]=cap;

    if(consecutivePresses[4]>cap)
        consecutivePresses[4]=cap;
    if(consecutivePresses[5]>cap)
        consecutivePresses[5]=cap;
    if(consecutivePresses[6]>cap)
        consecutivePresses[6]=cap;
    if(consecutivePresses[7]>cap)
        consecutivePresses[7]=cap;

    // Update the state of the scene
    glutPostRedisplay();//call the display callback
}