Ich habe ein erstellt FpsCounter
DrawableGameComponent
(mit Code verknüpft, es ist länger) . Es funktioniert hervorragend: Normalerweise werden 60,0 fps angezeigt. Wenn ich die Spielschleife künstlich verlangsame, fällt sie ab.
Mein 'Spiel' ist im Moment ein einzelnes Sprite mit Tastatursteuerung, daher sollte es möglich sein, häufiger als 60 Bilder pro Sekunde zu rendern.
Ich dachte, das Ausschalten der vertikalen Synchronisation würde die FPS-Obergrenze erhöhen:
public Game1()
{
_graphics = new GraphicsDeviceManager(this)
{
PreferredBackBufferWidth = WindowWidth,
PreferredBackBufferHeight = WindowHeight,
SynchronizeWithVerticalRetrace = false,
};
_graphics.ApplyChanges();
Content.RootDirectory = "Content";
}
Obwohl der obige Code so aussieht, als sollte er vsync deaktivieren, scheint dies nicht der Fall zu sein. Stimmt etwas mit meinem Konstruktor oder meinen FPS-Berechnungen nicht? Oder gibt es noch etwas, das die Anzahl der Frames einschränkt?
quelle
Dies hängt von Ihren Grafikkarteneinstellungen ab (unter Windows). Ich hatte das gleiche Problem und stellte dann fest, dass meine nVidia-Karte über eigene vsync-Einstellungen in der Systemsteuerung verfügt, in denen vsync auf den erzwungenen Modus eingestellt werden kann (Anwendungseinstellungen werden in diesem Fall ignoriert).
quelle