Esempio n. 1
0
	void DebugSystem::Update( const GameTime& gameTime_ )
	{
		m_fFPSTime += gameTime_.FrameTime();
		m_iFPSCount++;
		
		if (m_fFPSTime >= 1.0f)
		{
			//AverageDrawCalls = drawCallThisSecond / m_iFPSCount;
			//AverageTrianglesDrawn = trianglesDrawnThisSecond / m_iFPSCount;
			//Reset startSecondTick and repaintCountSecond

			m_fFPSTime -= 1.0f;
			float FPSDelta = (float)m_iFPSCount * m_fFPSTime;			
			//FPS - delta, to reduce the calculation to 1 second precisely
			m_iLastFPSCount = (int)( (float)m_iFPSCount - FPSDelta + m_fFPSLastDelta );

			m_iFPSCount = 0;
			m_fFPSLastDelta = FPSDelta;
			//drawCallThisSecond = 0;
			//trianglesDrawnThisSecond = 0;

			//CA_TRACE("FPS %d\n", m_iLastFPSCount);

			GlobalEventSet::Instance().fireEvent(
				FPSChangeEvent::FPSChangeEventName,
				FPSChangeEvent(m_iLastFPSCount));
		}
	}
/**
 * <param name="gameTime"></param>
 * <param name="horizontalAxis_"> value between -1.0 and 1.0 </param>
 * <param name="verticalAxis_"> value between -1.0 and 1.0 </param>
 * <param name="rollAxis_"> value between -1.0 and 1.0 </param>
 * <param name="zoom"> zoom value </param>
*/
void ArcBallCameraController::HandleControls(const GameTime& gameTime_,
	float rightAxis_, float upAxis_, float forwardAxis_,
	float horizontalOrbit_, float verticalOrbit_, float /*rollOrbit_*/, float zoom_)
{
	float r = rightAxis_ * gameTime_.FrameTime() * m_fInputDisplacementRate; 
	float u = upAxis_ * gameTime_.FrameTime() * m_fInputDisplacementRate; 
	float f = forwardAxis_ * gameTime_.FrameTime() * m_fInputDisplacementRate;

	float dH = horizontalOrbit_ * gameTime_.FrameTime() * m_fInputTurnRate;
	float dV = verticalOrbit_ * gameTime_.FrameTime() * m_fInputTurnRate;
	//float dR = rollOrbit_ * gameTime_.FrameTime() * m_fInputTurnRate;

	if ( dH != 0.0f ) RotateTargetRight(dH);//OrbitUp( dH );
	if ( dV != 0.0f ) RotateTargetUp(dV); //OrbitRight( dV );
	//if ( dR != 0.0f ) RotateClockwise( dR );

	//decrease distance to target
	m_fDistance += zoom_ * gameTime_.FrameTime() * m_fInputDistanceRate;

	if ( m_fDistance < 0.001f ) m_fDistance = 0.001f;

	if ( r != 0.0f || u != 0.0f || f != 0.0f ) 
	{
		Vector3F pos = Target() + (Right() * r) + (Up() * u) + (Direction() * f);
		Target(pos);

		/*Vector3F target = pos;
		target.Normalize();
		target *= m_fDistance;
		target += pos;

		SetCamera(pos, target, Up());*/
	}
}
Esempio n. 3
0
	void InGameLogger::Update(const GameTime& gameTime_)
	{
 		float time = gameTime_.FrameTime();

		for (int i=0; i<NBLOGLINES; i++)
		{
			m_Lines[i].delay -= time;			

			if (m_Lines[i].delay <= 0.0f)
			{
				m_Lines[i].isDeleted = true;
			}
		}
	}