示例#1
0
void TriV::Engine::Core::TriVEngine::initiateEngineLoop()
{
	std::cout << "ENGINE: Initiating Engine Loop..." << std::endl;
	while (!exitRequested)
	{

		frameDelta = engineClock.GetFrameDeltaSeconds();
		frameAccumulator += frameDelta;
		if(frameAccumulator >= 1.0f)
		{
			framesPerSecond = engineClock.GetFrameCount() / frameAccumulator;
			std::cout << " FPS: " << framesPerSecond << " | Frame: " << frameDelta << "s | Render: " << engineClock.RenderAverage() << "ms | Update: " << engineClock.UpdateAverage() << "ms | Physics: " << engineClock.PhysicsAverage() << "ms" << std::endl;
			frameAccumulator = 0.0f;
			engineClock.Reset();
		}

		engineClock.StartPhysicsTimer();
		tickPhysics();
		engineClock.StopPhysicsTimer();

		engineClock.StartUpdateTimer();
		tick();
		engineClock.StopUpdateTimer();

		engineClock.StartRenderTimer();
		render();
		engineClock.StopRenderTimer();

		
	}
	shutdownEngine();
}
示例#2
0
文件: sim.cpp 项目: 4real/thecolony
void tick(Sim & sim)
{
    sim.time += 1;

    if ((sim.time % 10) == 0)
    {
        tickPumps(sim);
    }

    tickPhysics(sim);
    tickAgents(sim);

    if ((sim.time % 1000) == 0) //increase this if game feels unresponsive to cell changes
    {
        updateCellsByTerrain(sim);
    }
}