【XNA 4】XNA游戏中用于计算帧数FPS的游戏组件(GameComponent)的源代码!!
2012-07-03 17:57
387 查看
/// <summary> /// This is a game component that implements IUpdateable. /// </summary> public class FrameRateCounter : Microsoft.Xna.Framework.DrawableGameComponent { ContentManager content; SpriteBatch spriteBatch; SpriteFont spriteFont; int frameRate = 0; int frameCounter = 0; TimeSpan elapsedTime = TimeSpan.Zero; public FrameRateCounter(Game game, SpriteBatch spriteBatch) : base(game) { content = new ContentManager(game.Services); LoadGraphicsContent(true); this.spriteBatch = spriteBatch; } protected void LoadGraphicsContent(bool loadAllContent) { if (loadAllContent) { spriteFont = content.Load<SpriteFont>(@"Content\HudFont"); // 指定SpriteFont } } public override void Update(GameTime gameTime) { elapsedTime += gameTime.ElapsedGameTime; if (elapsedTime > TimeSpan.FromSeconds(1)) { elapsedTime -= TimeSpan.FromSeconds(1); frameRate = frameCounter; frameCounter = 0; } } public override void Draw(GameTime gameTime) { frameCounter++; string fps = string.Format("FPS: {0}", frameRate); spriteBatch.Begin(); spriteBatch.DrawString(spriteFont, fps, new Vector2(20, 20), Color.White); // 坐标根据需要自行修改 spriteBatch.End(); } }
需要用的时候只要在LoadContent的spriteBatch初始化之后用
Component.Add(new FrameRateCounter(this, spriteBatch));
即可。
另外注意,需要自行修改一下你用来显示FPS的SpriteFont文件,和要显示FPS的坐标。
相关文章推荐
- Android游戏开发测量每秒帧数 Frames Per Second (FPS)
- [XNA研究强烈推荐]XNA开发雷电类游戏,源代码提供下载学习(提供代码和视频演示)
- [Unity3D]查看与设置游戏帧数FPS
- 显示游戏FPS帧率的几种计算方式
- Unity3D--游戏帧数【FPS】的显示和查看
- Windows Phone 7 XNA开发之关于游戏组件 推荐
- python:读取视频,处理后,实时计算帧数fps
- [Unity3D]查看与设置游戏帧数FPS
- 【Unity】查看与显示游戏帧数FPS
- python 读取视频,处理后,实时计算帧数fps的方法
- Java 组件及事件处理实训 实训2:编写一个窗体程序,用于计算一元二次方程
- python tools:计算视频的 FPS,以及总帧数
- [Unity3D]查看与设置游戏帧数FPS
- [Unity3D]查看与设置游戏帧数FPS
- 【XNA 4】XNA中2D游戏照相机组件+分屏模式解决方案
- XNA游戏开发之(五)——XNA实现组件复用
- [Unity3D]查看与设置游戏帧数FPS
- XNA游戏开发之(五)——XNA实现组件复用
- JAVA游戏开发计算显示FPS
- Android计算游戏FPS