Мне просто интересно, при создании игры я заметил, что значение GameTime для IsRunningSlowly возвращает false, когда моя игра имеет фокус (как и должно быть), но когда я меняю приложения, оно меняется на true. Я даже создал пустую игру, и даже когда она теряет фокус, значение GameTime для IsRunningSlowly также возвращает значение true. Мне интересно, почему это делается? Это только мой компьютер, или создатели XNA так спроектировали? Частота кадров кажется хорошей, но значение соответствует действительности. На самом деле ничего страшного, мне просто очень интересно!
[Пустая игра]
public class Game1 : Microsoft.Xna.Framework.Game
{
#region Constuctors
public Game1()
{
this.GraphicsManager = new Microsoft.Xna.Framework.GraphicsDeviceManager(this);
this.Content.RootDirectory = "Content";
}
#endregion
#region Overrides
protected override void LoadContent()
{
this.SpriteBatch = new Microsoft.Xna.Framework.Graphics.SpriteBatch(this.GraphicsDevice);
base.LoadContent();
}
protected override void Update(Microsoft.Xna.Framework.GameTime GameTime)
{
System.Console.WriteLine(GameTime.IsRunningSlowly);
Microsoft.Xna.Framework.Input.KeyboardState Keyboard = Microsoft.Xna.Framework.Input.Keyboard.GetState();
if (Keyboard.IsKeyDown(Microsoft.Xna.Framework.Input.Keys.Escape)) this.Exit();
base.Update(GameTime);
}
protected override void Draw(Microsoft.Xna.Framework.GameTime gameTime)
{
GraphicsDevice.Clear(Microsoft.Xna.Framework.Color.CornflowerBlue);
base.Draw(gameTime);
}
#endregion
#region Variables
private Microsoft.Xna.Framework.GraphicsDeviceManager GraphicsManager { get; set; }
private Microsoft.Xna.Framework.Graphics.SpriteBatch SpriteBatch { get; set; }
#endregion
}