Tôi đã tạo một FpsCounter
DrawableGameComponent
(liên kết với mã, nó rất dài) . Nó hoạt động rất tốt: Nó hiển thị 60.0 khung hình / giây bình thường. Nếu tôi làm chậm vòng lặp trò chơi một cách giả tạo, nó sẽ giảm xuống.
'Trò chơi' của tôi tại thời điểm này là một sprite được điều khiển bằng bàn phím, do đó có thể hiển thị thường xuyên hơn 60 khung hình một giây.
Tôi hình dung tắt đồng bộ hóa dọc sẽ tăng giới hạn FPS:
public Game1()
{
_graphics = new GraphicsDeviceManager(this)
{
PreferredBackBufferWidth = WindowWidth,
PreferredBackBufferHeight = WindowHeight,
SynchronizeWithVerticalRetrace = false,
};
_graphics.ApplyChanges();
Content.RootDirectory = "Content";
}
Tuy nhiên, mặc dù đoạn mã trên có vẻ như sẽ tắt vsync, nhưng dường như không phải vậy. Có vấn đề gì với nhà xây dựng của tôi, hoặc có lẽ là tính toán FPS của tôi? Hoặc có điều gì khác có thể giới hạn số lượng khung hình?