Estaba probando tres formas diferentes de usar ElapsedGameTimey TotalGameTime, porque quiero una coincidencia exacta, por lo que todo se actualiza / dibuja en consecuencia.
Mientras estaba experimentando, aprendí que la primera actualización, ElapsedGameTimey TotalGameTimeambos son 0.
La segunda actualización ElapsedGameTimees 0.0166667, que es correcta (60 actualizaciones por segundo). Pero TotalGameTimees 0, no entiendo por qué.
Entonces, si empiezo a agregar desde la tercera actualización ( time += gameTime.ElapsedTime), ElapsedGameTimees igual a TotalGameTime, de lo contrario siempre habrá una diferencia de 0.0166667.
¿Puede alguien explicarme eso?
ACTUALIZADO: código
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Audio;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.GamerServices;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Media;
using System.Diagnostics;
namespace TestTime
{
class TimeTest2
{
TimeSpan totalTimeElapsed;
TimeSpan frequency = TimeSpan.FromSeconds(5.5f);
int times = 0;
int timesCheckpoint = 1;
public void load()
{
}
public void initialize()
{
totalTimeElapsed = TimeSpan.Zero;
}
public void update(GameTime gameTime)
{
times++;
String debug = "";
TimeSpan zero = TimeSpan.Zero;
if( times > 2 )
{
totalTimeElapsed += gameTime.ElapsedGameTime;
}
if( totalTimeElapsed != gameTime.TotalGameTime )
{
debug += " Diff time:"+times+" ["+totalTimeElapsed.ToString() + " != " + gameTime.TotalGameTime.ToString() + "]";
}
TimeSpan checkpoint = TimeSpan.FromSeconds(5.5f*timesCheckpoint);
if( gameTime.TotalGameTime >= checkpoint )
{
debug += "5.5f MARK ";
timesCheckpoint++;
}
if( !debug.Equals("") )
{
addDebug(debug + " -" + gameTime.TotalGameTime.ToString());
addDebug("");
}
}
public void draw()
{
}
public void addDebug(string str)
{
Debug.WriteLine(str);
}
}
}
GameTime.TotalGameTime.Milliseconds, o GameTime.TotalGameTime.TotalMilliseconds?