Je crée un moteur de jeu 2D utilisant SlimDX (DirectX 9), mais je suis confronté à deux problèmes liés, des fréquences d'images fluctuantes (taux de trame assez élevé) et un processeur élevé usage. La fréquence d'images est essentiellement la minuterie de jeu que toutes les animations se déroulent. L'utilisation du processeur est également à travers le toit (20%), je voudrais limiter à quelle vitesse SlimDX dessine des cadres pour une utilisation plus faible du processeur, et pour stabiliser l'animation et la vitesse de jeu, comment pourrais-je faire cela?SlimDX: limiter la fréquence d'images pour une utilisation plus faible du processeur
p.s Je suis sûr qu'il y a une meilleure façon de faire une "minuterie" de jeu séparée de la fréquence d'images, toute information serait appréciée.
boucleet inizialization:
var form = new RenderForm(World.WindowTitle);
form.ClientSize = new Size(World.WindowWidth, World.WindowHeight);
var device = new Device(new Direct3D(), 0, DeviceType.Hardware, form.Handle, CreateFlags.HardwareVertexProcessing, new PresentParameters()
{
BackBufferWidth = form.ClientSize.Width,
BackBufferHeight = form.ClientSize.Height
});
//Some stuff here, irrelevant to DirectX
MessagePump.Run(form,() =>
{
device.Clear(ClearFlags.Target | ClearFlags.ZBuffer, Color.Black, 1.0f, 0);
device.BeginScene();
sprite.Begin(SlimDX.Direct3D9.SpriteFlags.AlphaBlend);
//Stuff here
sprite.End();
device.EndScene();
device.Present();
//Thread.Sleep(1); <-- this didnt work using 0 or 1, it actually increased cpu ussage
});