• hge source explor 0x8 timer


    Timer

      时间部分,在hge中提供对于fps的控制,时间的控制等。

      其中会用到的参数有。

    hge_impl.h
        // Timer
        float                fTime;
        float                fDeltaTime;
        DWORD                nFixedDelta;
        int                  nFPS;
        DWORD                t0, t0fps, dt;
        int                  cfps;

      在system.cpp中使用到,用来控制帧率

    if(dt >= nFixedDelta)
                {
                    // fDeltaTime = time step in seconds returned by Timer_GetDelta
    
                    fDeltaTime=dt/1000.0f;
    
                    // Cap too large time steps usually caused by lost focus to avoid jerks
    
                    if(fDeltaTime > 0.2f)
                    {
                        fDeltaTime = nFixedDelta ? nFixedDelta/1000.0f : 0.01f;
                    }
    
                    // Update time counter returned Timer_GetTime
    
                    fTime += fDeltaTime;
    
                    // Store current time for the next frame
                    // and count FPS
    
                    t0=timeGetTime();
                    if(t0-t0fps <= 1000) cfps++;
                    else
                    {
                        nFPS=cfps; cfps=0; t0fps=t0;
                        _UpdatePowerStatus();
                    }
    
                    // Do user's stuff
    
                    if(procFrameFunc()) break;
                    if(procRenderFunc) procRenderFunc();
                    
                    // If if "child mode" - return after processing single frame
    
                    if(hwndParent) break;
    
                    // Clean up input events that were generated by
                    // WindowProc and weren't handled by user's code
    
                    _ClearQueue();
    
                    // If we use VSYNC - we could afford a little
                    // sleep to lower CPU usage
    
                    // if(!bWindowed && nHGEFPS==HGEFPS_VSYNC) Sleep(1);
                }
    fps

     Timer_GetTime()

      返回一个游戏已经运行的时间。

    float CALL GEImpl::Timer_GetTime()
    {
        return fTime;
    } 

     Timer_GetDelta()

      返回时间间隔。

    float CALL GEImpl::Timer_GetDelta()
    {
        return fDeltaTime;
    } 

     Timer_GetFPS()

      返回fps。

    int CALL GEImpl::Timer_GetFPS()
    {
        return nFPS;
    } 

  • 相关阅读:
    python—pandas及DataFrame
    python模块以及import 报错:ImportError: No module named myModule
    第二周开课测试
    第二周开课博客
    javaweb第二课
    javaweb第一课
    大道至简.读后感
    读后感2
    读后感.1
    测试
  • 原文地址:https://www.cnblogs.com/yoru/p/5515331.html
Copyright © 2020-2023  润新知